使用来自用户定义函数的值创建组合框
Posted
技术标签:
【中文标题】使用来自用户定义函数的值创建组合框【英文标题】:Create combo box with values from a user defined function 【发布时间】:2014-10-27 23:59:30 【问题描述】:我找到了这个用户定义的函数来列出访问数据库中的所有表:http://www.consultdmw.com/access-VBA-list-objects.htm
用户定义函数如下:
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
【讨论】:
谢谢。效果很好。以上是关于使用来自用户定义函数的值创建组合框的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Dlookup for Multiple Criteria 创建动态组合框