2017-03-05 122 views
0

我在上有一个文件D:\ SampleData.xlsm包含许多带有列和标题的条目。我需要查询该文件中的MyData工作表中的特定列。当我使用@Parfait这里建议的方法:Excel VBA JET另一个工作簿的SQL查询

Excel manufacturing dashboard with vba

我得到的错误,如附加屏幕截图。我的目标是从名为Nazwa,Detaliczna,Specjalna,其中Stan单元格中的值为>= 1的标头取出此文件列。

请任何人都可以提出一个解决方案?

Sub RunSQL() 
On Error GoTo ErrHandle 
    Dim conn As Object, rst As Object 
    Dim strConnection As String, strSQL As String 
    Dim i As Integer, fld As Object 

    Set conn = CreateObject("ADODB.Connection") 
    Set rst = CreateObject("ADODB.Recordset") 

    ' Hard code database location and name 
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
         & "Data Source='D:\SampleData.xlsm';" _ 
         & "Extended Properties=""Excel 8.0;HDR=YES;"";" 

    strSQL = " SELECT [MyData$].[Nazwa], [MyData$].[Detaliczna]," _ 
       & " [MyData$].[Specialna]" _ 
       & " FROM [MyData$]" _ 
       & " WHERE [MyData$].[Stan] = 1;" 

    ' Open the db connection 
    conn.Open strConnection 
    rst.Open strSQL, conn 

    ' column headers 
    i = 0 
    Worksheets("Results").Range("A1").Activate 
    For Each fld In rst.Fields 
     ActiveCell.Offset(0, i) = fld.Name 
     i = i + 1 
    Next fld 

    ' data rows 
    Worksheets("Results").Range("A2").CopyFromRecordset rst 

    rst.Close 
    conn.Close 

    MsgBox "Successfully ran SQL query!", vbInformation 
    Exit Sub 

ErrHandle: 
    MsgBox Err.Number & " = " & Err.Description, vbCritical 
    Exit Sub 
End Sub 

Error when running the query

+0

最后一列是稍微拼错。 – Parfait

回答

0

尽量符合 'Specjalna' 取代 'Specialna':

& " [MyData$].[Specialna]" _ 
相关问题