2009-06-24 96 views
0

這花了我近2周時間,我不知道還有什麼要做。我有一個主窗體(UserSearch)具有子窗體(TestUserSub)。這兩種形式的關聯表是tblusers。 很簡單;在主窗體上(UserSearch)我有一個組合框與tblusers中的字段相關聯,例如cmbid,cmbname,cmbdept等。我想要的是讓用戶從任何這些組合框中進行選擇,並在子窗體中顯示相關字段(TestUserSub)。我已經在幾個ComboBoxes中的更新事件中嘗試了幾個不同版本的代碼,並且在子窗體或其他實例中我都會收到錯誤消息。 一個例子我曾嘗試是過濾運行的SQL命令使用組合框過濾子窗體

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 

以上沒有工作...是否有人可以幫助我。我有一個樣例數據庫,我一直在努力工作,並且通過一些非常奇怪的方式,他們設法在不調用任何代碼的情況下做同樣的事情。這可能嗎?

回答

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 2009-06-25 19:58:41