如何在不创建查询的情况下从 Access 表中获取值

Posted

技术标签:

【中文标题】如何在不创建查询的情况下从 Access 表中获取值【英文标题】:How to take values from an Access table without creating Query 【发布时间】:2019-10-27 10:26:08 【问题描述】:

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

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

这里有一个更清楚的例子:

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

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

【问题讨论】:

【参考方案1】:

将 Combobox 的 Row Source 属性设置为:

select distinct [Field 1] from YourTable

【讨论】:

【参考方案2】:

如果您希望通过 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

【讨论】:

以上是关于如何在不创建查询的情况下从 Access 表中获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用按钮或 tbody 的情况下从动态生成的表中单击一行来获取 HTML 表中单元格的值

在不使用事务的情况下从多个查询中获取行 ID

如何在不触摸或点击文本字段的情况下从动态创建的 UITextField 获取文本(禁用用户交互)?

如何在不使用 CURDATE、MONTH、YEAR 等 DATE 函数的情况下从 RDBMS 获取当前月份记录

在不使用 distinct 的情况下从查询中获取唯一记录集

如何在不使用 regexp_like 的情况下从列中获取整数