2014-10-27 105 views
0

我发现这个用户自定义功能列出访问数据库中的所有表从创建值组合框从用户定义函数

Function dmwListAllTables() As String 

Dim tbl As AccessObject, db As Object 
Dim strMsg As String 

On Error GoTo Error_Handler 

Set db = Application.CurrentData 
For Each tbl In db.AllTables 
Debug.Print tbl.Name 
Next tbl 

strMsg = " -- Tables listing complete -- " 

Procedure_Done: 
dmwListAllTables = strMsg 
Exit Function 

Error_Handler: 
strMsg = Err.Number & " " & Err.Description 
Resume Procedure_Done 

End Function 

此函数最初设计用于将当前数据库中的所有表名打印到即时窗口,但是我正在寻找一种方法将dmwListAllTables()输出作为具有组合框的窗体中使用的值。这项壮举可能吗?

由于提前,

dubbbdan

回答

1

我肯定可以修改代码,做你想做的。只是一个问题,你希望在什么时候发生这种情况。当窗体加载或单击按钮时,ComboBox是否需要填充表的名称?所有你需要做的是一样的东西,(对于一个简单的例子,我将加载窗体时使用),

Private Sub Form_Load() 
    Me.comboBoxName.RowSourceType = "Value List" 
    Me.comboBoxName.RowSource = dmwListAllTables() 
End Sub 

然后你的函数被修改为,

Function dmwListAllTables() As String 
    Dim tbl As AccessObject, db As Object 
    Dim strMsg As String 
On Error GoTo Error_Handler 
    Set db = Application.CurrentData 

    For Each tbl In db.AllTables 
     strMsg = strMsg & tbl.Name & ";" 
    Next tbl 

Procedure_Done: 
    dmwListAllTables = strMsg 
    Exit Function 

Error_Handler: 
    strMsg = Err.Number & " " & Err.Description 
    Resume Procedure_Done 
End Function 
+0

谢谢你。工作很好。 – dubbbdan 2014-10-28 19:25:51