2017-01-23 76 views
0

我一直在第4行(Me.ConstructQuery)上收到運行時錯誤2465。我有一個嵌入了tab控件的表單;每個選項卡都將包含一個子表單。我希望能夠從每個選項卡中的多個組合框中查詢每個子表單。訪問過濾子表格

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

大加讚賞任何意見或建議。

在此先感謝。

+0

剛剛contstructquery應該做的那一行。 –

+0

你可以在調試模式下單步執行代碼並查看線路出現故障的位置嗎?它正在返回第4行,因爲這是調用ConstructQuery方法的行。但是,如果您逐句通過代碼,您可能會發現真正的罪魁禍首。 –

回答

0

叫它直:

Public Sub cboLastName_AfterUpdate() 
    ConstructQuery 
End Sub 
+0

謝謝,那讓我通過那條線,但是,得到以下線路上的錯誤,如果Nz(Me.qryHardware.Form.cboUserID,「」)<>「」 – Michael

+0

嘗試減少它到:Nz(Me!cboUserID.Value )<>「」「。 – Gustav

0

謝謝,定了!爲了正確搜索子表單,我還必須將字符串值放在「'中。