我有以下需要转换为VBA代码的逻辑: 1.用户从组合框中选择一个或多个查询名称: 2.用户点击“显示表”按钮 3.选定的表格已打开
到目前为止,我有以下代码:
Private Sub cmdShowTable_Click()
Dim valSelect1 As Variant
Dim strValue1 As String
Dim strValue2 As String
For Each valSelect1 In Me.Combo29.ItemsSelected
DoCmd.SetWarnings (WarningsOff)
strValue1 = Me.Combo29.ItemData(valSelect1)
strValue2 = "select TableName from [List of Queries] where QueryName = " ' & strValue1 & '" "
DoCmd.OpenTable (strValue2)
Me.Combo29.Selected(valSelect1) = False
Next
DoCmd.SetWarnings (WarningsOn)
MsgBox "Complete!"
end sub
我明白错误是在strValue2行。语法和逻辑可能不正确,因为sql字符串传递给对象但未执行。必须执行它,然后将其值进一步传递给Docmd.Open表命令。
请帮助将它们捆绑在一起!
答案 0 :(得分:1)
您似乎无法决定打开查询或表格......
但是,如果每个查询都包含要打开的表名,请按以下步骤操作:
strValue1 = Me.Combo29.ItemData(valSelect1)
strValue2 = DLookup("TableName", "[List of Queries]", "QueryName = '" & strValue1 & "'")
DoCmd.OpenTable (strValue2)
如果每个查询都包含多个表名,那么您必须使用查询作为源打开记录集,然后循环返回的表名并打开它们。