使用VBS查询访问,无法弄清楚如何包含where语句与记录集

使用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) & "," 
+0

所以这完全在显示日期,工作=],但我会在哪里扔在那里参数,使其排序?感谢您的帮助=] –

+0

WHERE参数不排序,而是过滤器。它将被附加到SELECT语句。排序你会使用'ORDER BY' –