使用组合框过滤子表单

时间:2009-06-24 16:04:50

标签: combobox filter subform

这花了将近2个星期,我不知道还能做什么。我有一个主窗体(UserSearch)有一个子窗体(TestUserSub)。两个表单的关联表是tblusers。 非常简单;在主窗体上(UserSearch)我有一个与tblusers中的字段相关联的ComboBox,例如cmbid,cmbname,cmbdept等。我想要的是,用户可以从任何这些组合框中进行选择,并在子窗体(TestUserSub)中显示相关字段。我在几个ComboBox中的更新后事件中尝试了几个不同版本的代码,并且子窗体或其他实例中没有发生任何错误消息。 我尝试过的一个例子是过滤运行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

以上没有用......有人可以帮我解决这个问题。我有一个我一直在使用的示例数据库,并且通过一些非常奇怪的方式,他们设法在不调用任何代码的情况下执行相同的操作。这可能吗?

1 个答案:

答案 0 :(得分: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
希望这会有所帮助。