2009-06-24 11 views
0

これは2週間近くかかったので、何をするべきか分かりません。サブフォーム(TestUserSub)を持つメインフォーム(UserSearch)があります。両方のフォームに関連するテーブルはtblusersです。 非常に簡単です。メインフォーム(UserSearch)で、私はComboBoxをtblusersのフィールド、例えばcmbid、cmbname、cmbdeptなどのフィールドに関連付けました。私が欲しいのは、ユーザーがこれらのコンボボックスのいずれかを選択し、関連するフィールドをサブフォーム(TestUserSub)に表示することだけです。私はいくつかの異なるバージョンのコードをComboBoxのいくつかの後の更新イベントで試してみましたが、何もサブフォームや他のインスタンスでエラーメッセージが表示されています。 一例として、私は上記の動作しませんでした...誰かがこれで私を助けてくださいすることができコンボボックスを使用したサブフォームのフィルタリング

Private Sub cmbid_AfterUpdate() 

    Dim strSQL As String 

    If IsNull(Me.cmbaccess) Then 
     Me.RecordSource = "tblusers" 
    Else 
     strSQL = "SELECT tblUsers.[Team Member_ID] FROM tblUsers " & _ 
      "WHERE (((tblUsers.[Team Member_ID])= " & [form_testusersub].[txtid2]))& ";"  
     Me.RecordSource = strSQL 
    End If 

End Sub 

SQLコマンドを実行しているフィルタリングされて試してみました。私はサンプルデータベースを用意していますが、何か非常に奇妙な方法で作業していますが、コードを呼び出さずに同じことをすることができました。これは可能ですか?

答えて

0

私は

Private Sub yourcombobox_AfterUpdate() 
    Dim LSQL As String 

    If IsNull(Me.yourcombobox.Value) Then 
     Form_yoursubform.RecordSource = "tablename" 
     Me.yoursubform.Requery 
     requerysubform 'macro to requery the whole form 
    Else 
     LSQL = "select * from tablename" 
     LSQL = LSQL & " where field= '" & yourcombobox & "'" 

     Form_yoursubform.RecordSource = LSQL 
     requerysubform 'macro to requery the whole form 

    End If 
End Sub 

下のサンプルを使用してコードを把握することができたが、これは役立ちます願っています。

+0

このコードがメインフォームの各コンボボックスのafterupdateイベントに入力されていることを確認してください。それに応じてフィルタリングするサブフォームをトリガする必要があります – TT1611

関連する問題