VBA 代码:MS Access 中的过滤器表单

VBA Code : Filter Form in MS Access

我编写了以下 VBA 代码来帮助我使用 MS Access 中的表单过滤一些数据,但它不起作用:( 这是我写的:

Private Sub cboObjectKey_AfterUpdate() 
    Dim myObjectKey As String 
    myObjectKey = "Select * from testQueryFilter where ([ObjectID] = " & Me.CboObjectKey & ")"
    Me.subformquery1.Form.RecordSource = myObjectKey
    Me.subformquery1.Form.Requery  
End Sub

我没有收到任何错误消息,但问题是它不起作用...当我尝试过滤时,我收到消息框提示 "enter parameter Value" 这不应该发生。当我从下拉列表中选择 select 时,我希望看到已应用过滤器。关于如何解决此问题的任何想法?

Br,

应用子窗体控件的 MasterLinkField 和 ChildLinkFields 会容易得多。

MasterLinkField 将是 [cboObjectKey]

ChildLinkField 将为 [ObjectID]

此操作需要零代码。

改变

 myObjectKey = "Select * from testQueryFilter where ([ObjectID] = " & Me.CboObjectKey & ")"

成为

myObjectKey = "Select * from testQueryFilter "

你还会收到提示吗?

如果是这样,那是 table 或名为 testQueryFilter 的查询有问题。

如果不是就是文字问题

where ([ObjectID] = " & Me.CboObjectKey & ")"

改为

where ([ObjectID] = '" & Me.CboObjectKey & "')"

并在上面

之后添加这一行
msgbox myObjectKey : debug.print myObjectKey 

这将向您显示正在生成的 SQL。

但是,坦率地说,您可能需要我们使用 MasterLinkField 和 ChildLinkField

see this video to help you