VBA问题:debug.print显示正确的数据 - 如何将其从立即窗口中删除?

时间:2010-07-29 16:14:33

标签: ms-access vba access-vba

在我的数据库中,我有一些具有机密信息的表格。这些表中的每一个都包含一个名为“ThisTableIsConfidential”的空字段。我有一个函数,可以在立即窗口中正确显示包含此字段的表的列表。现在我想在表单上显示列表,我无法弄清楚如何做到这一点。我想将该函数放在查询中并在列表框中显示该函数,但查询不起作用。有什么想法吗?

这是功能(我从几个不同的在线资源中拼凑而成):

Function GetConfidentialTable()
 Dim db As Database, tbl As TableDef, fld As Field, currentTable As String
   Set db = CurrentDb

   For Each tbl In db.TableDefs
        If (tbl.Attributes = 0) Then  

        currentTable = tbl.Name

        If FieldExists(currentTable, "ThisTableIsConfidential") = True Then
            Debug.Print currentTable
        End If
     End If

   Next tbl
End Function

1 个答案:

答案 0 :(得分:1)

您可以将列表框行源类型设置为值列表,然后使用您的函数返回列表:

Function GetConfidentialTable()
 Dim db As Database, tbl As TableDef, fld As Field, currentTable As String
   Set db = CurrentDb

   For Each tbl In db.TableDefs
        If (tbl.Attributes = 0) Then  

        currentTable = tbl.Name

        If FieldExists(currentTable, "ThisTableIsConfidential") = True Then
            sList = sList & ";" & currentTable
        End If
     End If

   Next tbl

   GetConfidentialTable = Mid(sList,2)
End Function