点击查询名称

时间:2015-11-22 17:10:07

标签: sql ms-access access-vba recordset

我有以下需要转换为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表命令。

请帮助将它们捆绑在一起!

1 个答案:

答案 0 :(得分:1)

您似乎无法决定打开查询或表格......

但是,如果每个查询都包含要打开的表名,请按以下步骤操作:

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

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