使用2个文本框中的参数在列表框中显示查询

时间:2016-01-07 01:50:21

标签: vba ms-access access-vba ms-access-2007

所有

我正在尝试创建一个搜索表单,让用户使用2个参数搜索数据。我有一个带有列表框的用户表单,三个文本框和一个查找按钮。

第一个文本框是txt_sname(Combobox)

第二个文本框是txt_sdate

第三个文本框是txt_sdate1

列表框是lst_main

我在这里要做的是让用户从组合框下拉菜单中选择一个名称。输入日期,例如12/11/2015 - 01/01/2016。然后我希望查询显示在列表框中。

我设置的表格是“Main”,其中包含以下字段:

t_Name

t_Date

t_ContactID

t_Score

t_Comments

查询将查看t_Date和t_Name,如果数据与文本框中的参数匹配,则它将在列表框中显示信息。谁能指出我正确的方向?

我使用以下内容将数据传递给表:

Private Sub c_Submit_Click()
Dim db As Database
Dim rec As Recordset

Set db = CurrentDb
Set rec = db.OpenRecordset("Select * from Main")

If IsNull(Me.txt_Name.Value) Or IsNull(Me.txt_Date.Value) Or           IsNull(Me.txt_Contact.Value) Then
MsgBox ("Error! Fill out all the fields!"), vbExclamation
Exit Sub
End If


rec.AddNew
rec("t_Name") = Me.txt_Name.Value
rec("t_Date") = Me.txt_Date
rec("t_ContactID") = Me.txt_Contact
rec("t_Score") = Me.txt_Score
rec("t_Comments") = Me.txt_Comments
rec.Update

Set rec = Nothing
Set db = Nothing

Me.txt_Name = Null
Me.txt_Date = Null
Me.txt_Contact = Null
Me.txt_Score = Null
Me.txt_Comments = Null

Me.Text32.Requery



MsgBox ("Record Added Successfully!")
End Sub

谢谢大家的帮助!干杯!

1 个答案:

答案 0 :(得分:1)

列表框具有RowSource属性,因此可以使用表或查询。只需根据其他文本框中的值设置RowSource

Private Sub c_Submit_Click()

    Me.lst_main.RowSource = "SELECT t_Name, t_Date, t_ContactID, t_Score, t_Comments" _
                             & " FROM Main" _ 
                             & " WHERE t_Name = '" & Me.txt_sname & "'" _
                             & " AND t_Date >= #" & Me.txt_sdate & "#" _
                             & " AND t_Date <= #" & Me.txt_sdate1 & "#;"
    Me.lst_main.RowSourceType = "Table/Query"
    Me.lst_main.Requery

End Sub