单击查询名称打开 table

Open the table by clicking on the name of the query

我有以下逻辑需要转换成 VBA 代码: 1. 用户从组合框中选择一个或多个查询名称: 2. 用户点击 "Show Table" 按钮 3.选中Table(s)is/are打开

到目前为止,我有以下代码:

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 table 命令。

请帮忙把它们绑在一起!

您似乎无法决定是打开查询还是 tables ...

但是,如果每个查询都有一个要打开的 table 名称,请像这样:

strValue1 = Me.Combo29.ItemData(valSelect1)
strValue2 = DLookup("TableName", "[List of Queries]", "QueryName = '" & strValue1 & "'")
DoCmd.OpenTable (strValue2)

如果每个查询包含多个 table 个名称,您必须使用该查询作为源打开一个记录集,然后循环返回的 table 个名称并打开它们。