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
我编写了以下 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