来自2个相关表格的组合框数据Ms

时间:2015-08-20 11:18:25

标签: combobox access-vba ms-access-2010

我有两个表:Salesagent和Client,它们与id相关,每个销售代理都有太多客户端具有相同的ID,

我想添加组合框以显示salesagent,然后添加另一个显示该salesagent客户端的组合框

combosale没关系..

comboclient,仅选择 1' st salesagent 时,显示客户表的 1' st (只有一个不是全部) p>

当我选择其他销售代理时,它显示,即使它有与之相关的客户

:(

我使用过: Me.combmoclient = DLookup(" [cname]"," [client]"," [salesagent] ='"& Me。 Combosale&"'")

2 个答案:

答案 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

太多于你的帮助!!