2010-09-21 166 views
0

在访问ADP的窗体中,有一个未绑定的组合框,显示公司列表(显示名称,id是绑定字段)。选择某个公司时,我想在该公司的子表单(该公司的数据源为companySubscription视图)中显示该公司的订阅信息。我设置链接主字段并将子窗体的子字段属性链接到companyId。基本上,我设置它像this将子窗体链接到主窗体上的组合框的问题

理论上,我认为这将意味着当我更改组合框中的值时,子窗体应显示该公司的订阅信息。它不工作 - 无论组合框设置了什么,子窗体总是显示companySubscription视图中的所有数据。

帮助!

+0

不,它不是” t切换 – dmr 2010-09-21 16:44:04

+0

您是否知道如何根据组合框中选择的内容切换父窗体的当前记录? – dmr 2010-09-21 16:48:39

+1

@Hansup链接主字段不一定是一个字段,它可以是一个控件,并且控件甚至可以保存直线文本。我经常使用它。 – Fionnuala 2010-09-21 16:57:24

回答

0

找到答案 - 不得不从其他项目,帮助一些代码:(!感谢this后)

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

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 
+0

这是您选择创建查找组合框时由组合框向导生成的代码。我不知道ADP版本,但第一个是现存最糟糕的自动生成的代码之一。我把它撕成碎片在这篇文章中:http://stackoverflow.com/questions/3401645/how-do-i-bring-up-a-record-based-on-a-combobox-in-access/3418490#3418490 - 在那篇文章中,我发现“每行代码创建的错误率至少为2.5%”。我的批评是针对MDB/ACCDB中的代码,但75%的批评也适用于ADP,这实在是糟糕的代码。 – 2010-09-22 03:36:44