使用VBS查询访问权限无法弄清楚如何在记录集

时间:2016-06-21 03:32:30

标签: ms-access vbscript ado recordset

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中生成软件的所有名称,但不会显示日期。

WHERE (((Renewals.[Expiration Date]) Between Date() And DateAdd("d",60,Date())));

我正在尝试在我的查询中使用这个where语句,这个where语句在Access中工作,我很困惑。我现在已经玩了大约七个小时。如果我把它放在SQL查询的From部分后面,我仍然会得到每个产品名称的旧查询。我是个新手。

1 个答案:

答案 0 :(得分:0)

rs.Fields(0)只是记录集中的第一个字段。日期是第二个字段rs.Fields(1)

您应该执行以下操作:

getNames = getNames + rs.Fields(0)  & " " & rs.Fields(1) & ","