0

我是 Access 的新手,我正在尝试为我的想法找到一个替代(和更有效)的解决方案。我有一个包含多个字段的表,我对只检索一个字段(文本值)感兴趣。

我的目标是创建一个组合框,显示该字段中的所有值(不重复),我设法通过将组合框链接到手动创建的查询来消除该字段的重复项。

这是一个更清楚的例子:

Field 1       Combobox
AAA           AAA
AAA           BBB
BBB           CCC
BBB
CCC
CCC
CCC

如何通过 VBA 获得相同的结果?当然,对于字段 1 中的任何记录更改,它必须是动态的。

4

2 回答 2

2

将Combobox的Row Source属性设置为:

select distinct [Field 1] from YourTable
于 2019-10-27T10:57:12.207 回答
0

如果您希望通过 VBA 完成,但@Lee Mac 的答案更简单,您可以使用表单加载事件来触发 vba 代码,如下所示:

Private Sub Form_Load()
Dim rst As DAO.Recordset
Dim strRowSource As String
Dim strSQL As String
Dim dbs As DAO.Database

Set dbs = CurrentDb

strSQL = "SELECT DISTINCT rowname FROM tablename"

Set rst = dbs.OpenRecordset(strSQL)

If Not (rst.EOF And rst.BOF) Then
    rst.MoveFirst
    Do Until rst.EOF = True
        strRowSource = strRowSource & rst!vehicle_name & ";"
        rst.MoveNext
    Loop
    With Me.ComboBoxname
        .RowSourceType = "Value List"
        .RowSource = strRowSource
    End With

End If

rst.Close
Set rst = Nothing

End Sub
于 2019-10-27T11:02:10.573 回答