组合框级联效应不适用于不同的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合框级联效应不适用于不同的行相关的知识,希望对你有一定的参考价值。

我在子窗体上有两个组合框。第一个组合框用于填充第二个组合框。这些放在表单的详细信息部分。我希望它们以这种方式工作:当我从第一个组合框中选择任何值时,我希望相同行的第二个组合框由相关值填充。

截至目前,我已经尝试实现这一点,当我从第1行的第一个组合框中选择任何值时,我看到同一行的第二个组合框被填充但是当我继续选择第一组组合框中的值时,我看到了第二组组合框中的值变化或变为空。

这是代码:

第一个组合框是cboRCMTask:

Private Sub cboRCMTask_AfterUpdate() 
    Me.cboRCMTaskOptions.RowSource = "SELECT ID, RCMTaskOptions FROM tblRCMTaskOptions WHERE RCM_ID=" & Me.cboRCMTask.Column(0) & ";" 
    Me.cboRCMTaskOptions = Me.cboRCMTaskOptions.ItemData(0) 
    Me.cboRCMTaskOptions.Requery 
End Sub 

cboRCMTaskOptions是第二个组合框。

form_current事件:

Private Sub Form_Current() 
    Me.cboRCMTask.RowSource = "SELECT ID, RCMTask FROM tblRCMTask;" 
    If IsNull(txtRCM_ID) Then 
        Me.cboRCMTask = Me.cboRCMTask.ItemData(0) 
    End If 
    Me.cboRCMTaskOptions.RowSource = "SELECT ID, RCMTaskOptions FROM tblRCMTaskOptions WHERE RCM_ID=" &    Me.cboRCMTask.Column(0) & ";" 
    If IsNull(txtRCMOption_ID) Then 
        Me.cboRCMTaskOptions = Me.cboRCMTaskOptions.ItemData(0) 
    End If 
End Sub 
答案

根据您的描述,您使用的是连续表单。虽然看起来连续形式有很多行,但从编码的角度来看,你可以认为它只有一行,即当前行。我怀疑组合2的控件源是组合中的隐藏数字列,当您更改组合的行源时,无法再找到可见行,因此无法显示。您将需要提供用于编辑的弹出窗体,或者用于存储窗体值的文本框以及用于编辑该值的稍微狡猾的组合。您可以使用条件格式来改善外观。

另一答案

在第一段代码中,将代码转移到on_click事件。我不确定你想要通过ItemData的引用实现什么,但我认为这是不必要的,注释掉那一行。

类似地,Form_current事件中的第三行到最后一行替换为requery。

以上是关于组合框级联效应不适用于不同的行的主要内容,如果未能解决你的问题,请参考以下文章

MVC+knocKout.js 实现下拉框级联

Bootstrap Javascript组件,模态框级联open解决方案

下拉框级联时如果对应的二级下拉框没有数据则隐藏,有就显示下拉框

asp.net多个下拉列表框级联怎么实现无刷新!!下拉列表框的数据都是从数据库中读取的!

主题不适用于片段

NHibernate 级联删除不适用于一对多关联