2009-06-24 100 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