Microsoft Access Text Driver - Синтаксические ошибки получены, если в исходных путях CSV присутствуют пробелы - PullRequest
0 голосов
/ 04 октября 2019

Я использую Текстовый драйвер Microsoft Access в SELECT Запросе к JOIN 2 CSV-файла , расположенным по по разным путям .

В одной из подпапок есть пробел, который называется " TEST FOLDER " исходного пути CSV. Если я переименую его в « TESTFOLDER » и обновлю мой путь csv в коде, запрос будет выполнен правильно. Но если я оставлю это место, это приведет к

Синтаксическая ошибка текстового драйвера Microsoft Access в предложении FROM

Кстати, это могут быть разные сетевые папки.

Option Explicit

Sub Test()

Dim oCon As New ADODB.Connection, oRs As New ADODB.Recordset
Dim strSql$, strCon$, strF1$, strF2$

strF1 = "C:\Users\ADAM\Documents\TEST FOLDER\Names.csv"
strF2 = "C:\Users\ADAM\Downloads\Address.csv"

strCon = "Driver=Microsoft Access Text Driver (*.txt, *.csv);Dbq=" & ThisWorkbook.Path & ";Extensions=asc,csv,tab,txt;"

strSql = "Select n.*, a.[Address] " & _
            "From " & strF1 & " n " & _
            "INNER JOIN " & strF2 & " a " & _
            "ON n.Name = a.Name "

    oCon.Open strCon
    Set oRs = oCon.Execute(strSql)

'    Sheet1.UsedRange.EntireRow.Delete
'    Sheet1.Cells(1).CopyFromRecordset oRs

    On Error Resume Next
    Sheet1.ListObjects(1).Delete
    On Error GoTo 0

    Dim oQT As QueryTable
    Set oQT = Sheet1.ListObjects.Add(xlSrcQuery, oRs, Destination:=Sheet1.Cells(1, 1)).QueryTable
    With oQT
        .Refresh
    End With
End Sub

Я попытался заключить пути csv в [квадратные скобки], «одинарные кавычки», «двойные кавычки», back-ticks и т. Д., Но я все еще получаю синтаксическую ошибку в предложении FROM.

Буду признателен за помощь в решении этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...