所有
我正在尝试创建一个搜索表单,让用户使用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
谢谢大家的帮助!干杯!
答案 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