过滤访问中的子表单

时间:2017-01-23 17:51:35

标签: vba ms-access access-vba

我在第4行(Me.ConstructQuery)上一直遇到运行时错误2465。我有一个表格,其中嵌入了一个标签控件;每个标签都包含一个子表单。我希望能够从每个选项卡中的多个组合框中查询每个子表单。

Option Compare Database

Public Sub cboLastName_AfterUpdate()
    Me.ConstructQuery
End Sub

Function ConstructQuery()
    Dim sFilter As String

    If Nz(Me.qryHardware.Form.cboUserID, "") <> "" Then
        sFilter = "UserID=" & Me.qryHardware.Form.cboUserID
    End If

    If Nz(Me.qryHardware.Form.cboLastName, "") <> "" Then
        sFilter = "LastName=" & Me.qryHardware.Form.cboLastName
    End If

    Me.qryHardware.Form.Filter = sFilter
    Me.qryHardware.Form.FilterOn = True


End Function

Private Sub cboBranch_Change()
    Dim strSQL As String

'populate userID comboBox
Me.cboUserID.ColumnCount = 2
Me.cboUserID.ColumnWidths = "0, 2cm"
strSQL = "SELECT ID, UserID  FROM Users WHERE BranchID=" &    Me.cboBranch.Value
Me.cboUserID.RowSource = strSQL

'populate last name comboBox
Me.cboLastName.ColumnCount = 1
Me.cboLastName.ColumnWidths = "2cm"
strSQL = "SELECT LastName FROM Users WHERE BranchID=" & Me.cboBranch.Value
Me.cboLastName.RowSource = strSQL

'poplulate first name comboBox
Me.cboFirstName.ColumnCount = 2
Me.cboFirstName.ColumnWidths = "0, 2cm"
strSQL = "SELECT ID, FirstName FROM Users WHERE BranchID=" & Me.cboBranch.Value
Me.cboFirstName.RowSource = strSQL

'populate account Status comboBox
Me.cboAccountStatus.ColumnCount = 2
Me.cboAccountStatus.ColumnWidths = "0, 2cm"
strSQL = "SELECT ID, AccountStatus FROM Users WHERE BranchID=" & Me.cboBranch.Value
Me.cboAccountStatus.RowSource = strSQL

End Sub

再一次,报告的行抛出异常是 Me.ConstructQuery

非常感谢任何建议或建议。

提前致谢。

2 个答案:

答案 0 :(得分:0)

直接说:

Public Sub cboLastName_AfterUpdate()
    ConstructQuery
End Sub

答案 1 :(得分:0)

谢谢,修好了!我还必须将字符串值括在''中,以便正确搜索子表单。