Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 将子窗体链接到主窗体上的组合框时出现问题_Ms Access_Combobox_Subform_Adp - Fatal编程技术网

Ms access 将子窗体链接到主窗体上的组合框时出现问题

Ms access 将子窗体链接到主窗体上的组合框时出现问题,ms-access,combobox,subform,adp,Ms Access,Combobox,Subform,Adp,在access ADP中的表单上,有一个未绑定的组合框,显示公司列表。显示名称时,id是绑定字段。选择公司后,我希望在子窗体中显示订阅信息,该子窗体的数据源是该公司的companySubscription视图。我将子窗体的链接主字段和链接子字段属性设置为companyId。基本上,我是这样设置的 理论上,我认为这意味着当我更改组合框中的值时,子表单应该显示该公司的订阅信息。但它不起作用-无论combobox设置为什么,子窗体始终显示companySubscription视图中的所有数据 救命啊

在access ADP中的表单上,有一个未绑定的组合框,显示公司列表。显示名称时,id是绑定字段。选择公司后,我希望在子窗体中显示订阅信息,该子窗体的数据源是该公司的companySubscription视图。我将子窗体的链接主字段和链接子字段属性设置为companyId。基本上,我是这样设置的

理论上,我认为这意味着当我更改组合框中的值时,子表单应该显示该公司的订阅信息。但它不起作用-无论combobox设置为什么,子窗体始终显示companySubscription视图中的所有数据


救命啊

找到了答案-从另一个项目中获得了一些代码,这些代码有助于:

Private Sub cmbSub_AfterUpdate()
    ' Find the record that matches the control.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[subID] = " & str(Nz(Me![cmbSub], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
并不得不修改它的ADP感谢后


您知道如何根据在组合框中选择的内容切换父窗体的当前记录吗?@Hansup链接主字段不必是字段,它可以是控件,控件甚至可以保存纯文本。我经常使用它。我怀疑问题可能出在绑定列上。这是选择创建“查找”组合框时组合框向导生成的代码。我不知道ADP版本,但第一个版本是现有最糟糕的自动生成代码之一。我在这篇文章中将它撕成碎片:-在那篇文章中,我发现每创建一行代码,错误率至少为2.5个问题。我的批评是针对MDB/ACCDB中的代码,但75%的批评也适用于ADP——这真是糟糕的代码。
Private Sub ChooseCo_AfterUpdate()
    ' Find the record that matches the control.
    Dim rs As ADODB.Recordset

    Set rs = Me.Recordset.Clone
    rs.Find "[companyId] = " & Str(Nz(Me![ChooseCo], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub