如何在VBA中获取Select SQL语句的结果

时间:2017-08-18 15:16:55

标签: sql vba ms-access access-vba

我希望能够使用SQL从表中检索数据并显示到Access中的即时窗口。

我是VBA的新手,我似乎找不到这样做的方式

Dim strSQL As String
Dim cdb As DAO.Database
Dim result As Variant

strSQL = "SELECT x, from y WHERE z;"

Set cdb = CurrentDb

Debug.Print strSQL

result = Call cdb.Execute(strSQL)

Debug.Print result 

2 个答案:

答案 0 :(得分:3)

仅从第一个记录打印字段值。

Dim strSQL As String
Dim result As DAO.Recordset
strSQL = "SELECT x FROM y WHERE z;"
Set result = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
result.MoveLast
result.MoveFirst
Debug.Print result!x

如果要从每条记录中打印一个值,请使用循环结构移动到每条记录,如:

Do While Not result.EOF
    Debug.Print result!x
    result.MoveNext
Loop

查看此网站http://allenbrowne.com/tips.html - 查看“图书馆示例”部分'大约一半。

答案 1 :(得分:1)

要仅使用一行生成结果(假设只返回一条记录),您可以使用:

Debug.Print CurrentDb.OpenRecordset("SELECT x FROM y WHERE z").Fields(0).Value

你也可以使用DLookUp函数,它不是SQL,但你会识别这些部分:

Debug.Print DLookUp("x", "y", "z")