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

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

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

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

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

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

【问题讨论】:

    标签: sql vba ms-access ms-access-forms


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-30
        • 2021-10-09
        • 1970-01-01
        • 2021-12-19
        • 1970-01-01
        • 2020-09-09
        相关资源
        最近更新 更多