2009-06-24 10 views
0

Cela m'a pris près de 2 semaines et je ne sais pas quoi faire d'autre. J'ai un formulaire principal (UserSearch) qui a un sous-formulaire (TestUserSub). La table associée pour les deux formes est tblusers. très simple; Sur le formulaire principal (UserSearch) j'ai un ComboBox associé aux champs dans les tblusers par exemple cmbid, cmbname, cmbdept et ainsi de suite. Tout ce que je veux, c'est que l'utilisateur sélectionne l'un de ces combobox et que les champs associés soient affichés dans le sous-formulaire (TestUserSub). J'ai essayé plusieurs versions différentes de code dans l'événement après la mise à jour dans deux ComboBox et rien ne se passe dans le sous-formulaire ou dans d'autres cas, je reçois un message d'erreur. Un exemple que j'ai essayé le filtrage l'exécution d'une personne commande SQLFiltrer sous-formulaire en utilisant 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 

ci-dessus ne fonctionne pas ... Peut-s'il vous plaît me aider. J'ai un exemple de base de données sur laquelle j'ai travaillé et de façon très étrange, ils ont réussi à faire la même chose sans appeler de code. Est-ce possible?

Répondre

0

j'ai pu comprendre le code en utilisant l'exemple ci-dessous

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 

espérons que cette aide.

+0

assurez-vous que ce code est entré dans l'événement afterupdate de chaque liste déroulante dans le formulaire principal. Il devrait déclencher le sous-formulaire pour filtrer en conséquence – TT1611