从没有列名的表中选择

时间:2019-06-10 10:06:23

标签: sql vba excel-vba

在VBA上,我想进行一个SQL查询以从文件中提取数据,但是文件的结构如下:

Header 1                        
Header 2                    
field 1 field 2 field 3 field 4 field 5

xxx  xxx     xxx     xxx     xxx     xxx

xxx  xxx     xxx     xxx     xxx     xxx

xxx  xxx     xxx     xxx     xxx     xxx

在开始查询之前,我必须跳过前2行。我在打开SQL连接时尝试了“ SkipRows = 2”,但没有用。

1 个答案:

答案 0 :(得分:0)

我假设文本文件是制表符分隔的,并创建了以下示例进行测试 enter image description here

我使用了documentation

中所述的schema.ini文件

enter image description here

使用以下示例代码,我能够读取数据。您需要对ActiveX数据对象的引用。

Option Explicit

    Sub ADO()

        Dim rs As New ADODB.Recordset
        Dim conn As New ADODB.Connection
        Dim myPath As String
        myPath = ThisWorkbook.Path

        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myPath & ";Extended Properties=""text;HDR=No;FMT=Delimited()"";"
        With rs
            .ActiveConnection = conn
            .CursorType = adOpenKeyset
            .LockType = adLockOptimistic
            .Open "SELECT * FROM [text_file.txt]"
        End With

        ' Skip the firt rows
        Dim i As Long
        For i = 1 To 3
            rs.MoveNext
        Next

        ' Example - Print just field 1
        Do Until rs.EOF
            Debug.Print rs.Fields(1).Value
            rs.MoveNext
        Loop

        conn.Close
    End Sub

另一种解决方案可能是使用Get & Transform