使用VBS查询访问,无法弄清楚如何包含where语句与记录集
问题描述:
Dim connStr, objConn, getNames
connStr = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\meandmine\Desktop\inventory.accdb"
Set objConn = CreateObject("ADODB.Connection")
objConn.open connStr
Set rs = objConn.execute("SELECT Renewals.[Product Name], Renewals.[Expiration Date] FROM Renewals")
'While loop, loops through all available results
DO WHILE NOT rs.EOF
'add names seperated by comma to getNames
getNames = getNames + rs.Fields(0) & ","
'move to next result before looping again
'this is important
rs.MoveNext
'continue loop
Loop
'Close connection and release objects
objConn.Close
Set rs = Nothing
Set objConn = Nothing
'Return Results via MsgBox
MsgBox getNames
这是我正在尝试使用的代码,它会生成MSGbox中软件的所有名称,但不会显示日期。使用VBS查询访问,无法弄清楚如何包含where语句与记录集
WHERE (((Renewals.[Expiration Date]) Between Date() And DateAdd("d",60,Date())));
我想在我的查询中使用这个where语句,这在where语句在Access中工作,我很困惑。我已经玩了大约七个小时了。如果我把它放在SQL查询的From部分之后,我仍然会得到与每个产品名称相同的旧查询。我是一个新手。
答
rs.Fields(0)
只是您的记录集中的第一个字段。日期是第二场是rs.Fields(1)
你应该做到以下几点:
getNames = getNames + rs.Fields(0) & " " & rs.Fields(1) & ","
所以这完全在显示日期,工作=],但我会在哪里扔在那里参数,使其排序?感谢您的帮助=] –
WHERE参数不排序,而是过滤器。它将被附加到SELECT语句。排序你会使用'ORDER BY' –