【问题标题】:Access-Query for data on listbox访问-查询列表框上的数据
【发布时间】:2017-12-18 11:27:24
【问题描述】:

我需要更新 Access 中的列表框,以显示由组合框的输入过滤的数据。组合框有三列:

ID Tipo di prodotto
Tipo di Prodotto
ID 类别

第一个是我需要的过滤器,第二个只是显示的文本,第三个我稍后会使用它。

我的代码如下:

Private Sub Prodtypelistcb_AfterUpdate()
Dim myquery As String
myquery = "SELECT Prodotto.[ID Prodotto], Prodotto.[Nome prodotto],Prodotto.[ID Tipodiprodotto]" & _
"FROM Prodotto WHERE (Prodotto.[ID Tipodiprodotto]=Maschere!Brand!Prodtypelistcb.Value)"

Me.Brandprodel.Visible = True
Me.Brandprodel.RowSource = myquery
Me.Brandprodel.Requery

End Sub

prodtypelistcb 是要作为输入操作更新的组合框,Brandprodel 是要在操作后更新的列表框。如果我把 WHERE=1 一切正常,那么代码应该没问题,不包括查询。

这个没有任何反应。我哪里错了?

更新

如果我在组合框上设置值并使用访问接口进行纯查询,它会显示我需要的内容。所以问题可能是在我更新组合框值后检索它,但不明白为什么。

【问题讨论】:

    标签: vba ms-access combobox listbox


    【解决方案1】:

    我认为问题出在 SQL 中。

    Dim myquery As String
        myquery = "SELECT [ID Prodotto], [Nome prodotto], [ID Tipodiprodotto] " & _ 
                  "FROM Prodotto WHERE [ID Tipodiprodotto] = " & _ 
                  Me!Prodtypelistcb.Column(1)
    

    【讨论】:

    • 谢谢。无论如何,我不明白为什么我之前使用的查询如果用于访问查询生成器并且如果用 VBA 编写则不起作用。
    • Access 查询知道 Maschere!Brand!Prodtypelistcb.Value 是一个控件,但 VBA 认为它只是一个字符串值,因为它包含在 " 引号中。
    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 2018-02-04
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多