VBA从Excel运行Access Query

时间:2016-08-29 20:33:26

标签: excel vba excel-vba ms-access db2

我正在尝试运行将运行和导出Access查询的VBA脚本。我能够进入我运行查询的代码中的步骤,但是,我需要连接到DB2以在Access中运行此查询,我不知道如何在我的代码中实现输入用户名和密码。

Sub RunQuery()
Dim A As Object
Application.DisplayAlerts = False
Set A = CreateObject("Access.Application")
A.Visible = False
A.OpenCurrentDatabase ("J:\user\filename.mdb")
A.DoCmd.OpenQuery "QueryName"
A.DoCmd.ConnectString
Application.DisplayAlerts = True

End Sub

代码只是停在了一行:

A.DoCmd.OpenQuery "QueryName"

如果我使用我的查询从这里打开我的数据库,它只是在等待我的用户名和密码。我会尝试附上提示的图片。

非常感谢任何帮助!!

非常感谢enter image description here

1 个答案:

答案 0 :(得分:3)

正如Ryan所说,使用ADO将是一个更好的选择,见下文

Public Sub RunQuery()
    Dim A As Object
    Dim rs As Object
    Dim strSql As String
    Dim strConnection As String
    Set A = CreateObject("ADODB.Connection")
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=J:\user\filename.mdb"
    strSql = "SELECT * FROM table"
    A.Open strConnection
    Set rs = A.Execute(strSql)
    arr = rs.GetRows

    'now the array arr has the data queried

    rs.Close
    Set rs = Nothing
    A.Close
    Set A = Nothing
End Sub