Lau*_*ghy 3 ms-access vba access-vba
我的程序有3个字段,即用户输入的标题,开始日期和结束日期.我希望填充名为"filteredResults"的列表框,其结果包含的瓦片等于用户输入的瓦片或属于日期范围的瓦片.
我可否知道:
1)如何使用从查询中获取的记录集填充列表框?
2)如何比较查询中的日期?
非常感谢!
Private Sub FilterProj_Click()
Dim title As String, startDate As Date, endDate As Date
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM Project WHERE ORDER BY [ProjectId] DESC")
filteredResults.Recordset = rs
Run Code Online (Sandbox Code Playgroud)
bon*_*igo 10
问题1:
直接从查询填充:
Me.mylistbox.rowsource = _
db.OpenRecordset("SELECT titles FROM Project _
WHERE title = '" & parameter & "' ORDER BY [ProjectId] DESC")
Run Code Online (Sandbox Code Playgroud)
使用Recordset对象填充:
If (rs.RecordCount <> 0) Then
Do While Not rs.EOF
mylistbox.Items.Add(rs.Fields(0).Value)
rs.MoveNext()
Loop
End IF
Run Code Online (Sandbox Code Playgroud)
另一种方法:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim strSQL As String
strSQL = "SELECT titles from Projects _
WHERE title = '" & parameter & "' ORDER BY [ProjectId] DESC"
Set db = CurrentDb
Set qdf = CurrentDb.CreateQueryDef("", strSQL)
qdf.Connect = strConn
Set rs = qdf.OpenRecordset()
Set Me.mylistbox.Recordset = rs
Run Code Online (Sandbox Code Playgroud)
问题2:
不太清楚.我假设你需要一个parameterized查询.通过将用户的值设置为where, and子句.
db.OpenRecordset("SELECT titles FROM Project _
WHERE title = '" & parameter & "' ORDER BY [ProjectId] DESC")
Run Code Online (Sandbox Code Playgroud)
或者,你可以使用下面的文章来设置parameter的query design view本身.
| 归档时间: |
|
| 查看次数: |
39813 次 |
| 最近记录: |