如何在Excel中获取Access Query的结果?

时间:2015-10-16 12:15:59

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

我正在尝试在访问数据库中执行查询,然后获取此查询结果并插入到Excel工作表中,但我没有做任何工作。这是我的代码

Sub Analise()
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sSQL As String
    Sheets("Plan1").Range("A2:A23").Select
    For Each Regra In Selection
        If Regra = "MYRULE" Then
            sSQL = "SELECT ITEM !, ITEM2 FROM base WHERE NomeRegra = ""'MyValue'"" "
            MyConn = "MyPath\base.mdb"
            Set cnn = New ADODB.Connection
            With cnn
                .Provider = "Microsoft.Jet.OLEDB.4.0"
                .Open MyConn
            End With
            Set rst = New ADODB.Recordset

            rst.CursorLocation = adUseServer

            rst.Open Source:=sSQL, ActiveConnection:=cnn, CursorType:=AdForwardOnly, LockType:=adLockOptimistic, Options:=adCmdText

            Sheets("Plan1").Range("D1:E1") = Array("Field1", "Field2")

            Range("D2:E100000").CopyFromRecordset rst

            rst.Close
            cnn.Close
        End If

    Next Regra

1 个答案:

答案 0 :(得分:0)

您是否尝试使用Access文件作为数据库在Excel中使用MS Query?从Excel中的数据选项卡

'获取外部数据' '来自其他来源'下拉菜单然后来自MS Query'

选择MS Access数据库,然后找到您的文件。当出现“查询向导”弹出窗口时,单击“取消”,然后“是”'继续在MS Query中编辑。如果您自己编写SQL,可以按下sql按钮,但语言与Access略有不同。它可能需要一些游戏,但MS查询可以是一个非常强大的工具。