在Excel表上编写SQL查询

时间:2015-04-08 21:17:00

标签: sql excel

我最近得到了一个编码分配,它涉及我为.xlsx表单(excel电子表格)中的数据库编写SQL查询。赋值基本上涉及我从前三个表中选择某些值,对这些值进行一些计算,然后在第四个表上打印答案。所有四个表都已创建,前三个表有输入值供我选择,而最后一个表的标题下面我应该把答案放在其中。

我可以知道怎么做吗? (基本上,我可以在哪里编写SQL命令,如SELECT * FROM表1当目标是excel表时WHERE Number = 1)

1 个答案:

答案 0 :(得分:0)

我一直对Excel文件运行查询 - 通常是xls,但xlsx的代码基本相同:

Sub ImportThisFile(FilePath As String, SourceSheet As String, Destination As Range)
    Set Conn = New ADODB.Connection
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
        FilePath & ";Extended Properties=Excel 8.0;"

    Sql = "SELECT * FROM [" & SourceSheet & "$]"

    Set RcdSet = New ADODB.Recordset
    RcdSet.Open Sql, Conn, adOpenForwardOnly

    Destination.CopyFromRecordset RcdSet

    RcdSet.Close
    Set RcdSet = Nothing

    Conn.Close
    Set Conn = Nothing
End Sub

这使用ADODB对象的早期绑定,因此" Microsoft ActiveX Data Objects 2.x Library"将需要添加到您的参考(工具 - >参考...)

根据connectionstrings.com,对于XLSX,提供者应为Microsoft.Jet.OLEDB.12.0,扩展属性应为Excel 12.0 Xml

https://www.connectionstrings.com/excel/

如何从另一个子例程/函数调用它的示例:

Sub StartDoingStuff()
    ImportThisFile "c:\Path\To\File.xls", "Sheet1", range("Sheet2!A2")
End Sub