我有两个表:Salesagent和Client,它们与id相关,每个销售代理都有太多客户端具有相同的ID,
我想添加组合框以显示salesagent,然后添加另一个显示该salesagent客户端的组合框
combosale没关系..
comboclient,仅选择 1' st salesagent 时,显示客户表的 1' st (只有一个不是全部) p>
当我选择其他销售代理时,它显示无,即使它有与之相关的客户
:(
我使用过: Me.combmoclient = DLookup(" [cname]"," [client]"," [salesagent] ='"& Me。 Combosale&"'")答案 0 :(得分:1)
不要使用Dlookup,它只会返回符合您条件的第一个值,而实际上您需要该销售代理的整套客户端。相反,您应该使用combosale字段的AfterUpdate()事件来执行以下操作:
Private Sub Combosale_AfterUpdate()
Me.comboclient.RowSource = "SELECT cname FROM client WHERE id = " & Me.Combosale.Column(1) & ";"
End Sub
通常,纯SQL查询比Dlookup,Dsum等函数快得多。如果您远离它们并将SQL代码写入Access VBA,那么您将拥有一个更稳定的应用程序。
答案 1 :(得分:0)
这个vba解决了问题:)
Private Sub Combosale_AfterUpdate()
Me.comboclient.RowSource = "SELECT cname FROM client WHERE id = " & Me.Combosale.Column(1) & ";"
End Sub
太多于你的帮助!!