如何从Access中的SQL查询填充列表框?

时间:2017-09-11 13:38:30

标签: sql-server ms-access access-vba ms-access-2010

我的Access数据库中有一个子表单作为主表单的一部分。所有数据都在链接到SQL Server DB的链接表中。我无法弄清楚如何根据其中一个链接表的查询正确填充列表框。我以为我的工作只是发现我没有。我不确定我的代码是否在正确的位置,或者我的代码是否正确。这就是我所拥有的:

Forms![DATASHEET - CAF2]![Project_Permit]!Permits!RowSource = "select pc.Value Permit from pmdb.Project_Permit pp" _
    & " left join pmdb.PicklistChild pc on pc.Id = pp.Permit " _
    & " where Project = '" & ProjectNum & "' and ProjectType = " & ProjectTypenum _
    & " and GroupID = '" & GROUPID & "';"

这是主表单的Form_Load()子。

这应该在子表单中吗?

或者我的代码错了吗?

或两者兼而有之?

1 个答案:

答案 0 :(得分:1)

Refer to Form and Subform properties and controls

这是Forms!Mainform!Subform1.Form!ControlName.Enabled案例。

您可能需要

Forms![DATASHEET - CAF2]![Project_Permit].Form!Permits.RowSource = "..."

如果您可以将代码放入子表单中,则会简化为

Me!Permits.RowSource = "..."

对于SQL,这确实是无效的语法。

对每列进行限定,并用逗号分隔列,例如

select pc.Value, pp.Permit from ...

要调试SQL,请参阅:How to debug dynamic SQL in VBA