2017-01-23 11 views
0

私は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

感謝何かアドバイスや提案です。

ありがとうございます。

+0

contstructqueryだけでその行を行う必要があります。 –

+0

デバッグモードでコードをステップ実行して、行が失敗する場所を確認できますか?これは、ConstructQueryメソッドを呼び出す行であるため、行4を返します。しかし、コードをステップ実行すれば、本当の原因を見つけることができます。 –

答えて

0

はまっすぐにそれを呼び出します。それを固定

Public Sub cboLastName_AfterUpdate() 
    ConstructQuery 
End Sub 
+0

Nz(Me!qryHardware.Form.cboUserID、 "")<> "" – Michael

+0

これを減らすようにしてください: 'Nz(Me!cboUserID.Value )<> "" ' – Gustav

0

おかげで、!また、サブフォームを適切に検索するために、文字列値を ''内に囲まなければなりませんでした。

関連する問題