У меня есть следующий код, который использует Microsoft Access Text Drive для объединения двух CSV-файлов. Код работает правильно, если в пути к файлам нет пробелов, в противном случае выдается сообщение об ошибке « Синтаксическая ошибка в предложении 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
Но есть еще одна проблема, которая возникает, когда я добавляю QueryTable. Обратите внимание, что в рабочей книге не определено никаких запросов мощности:
Frown (ошибка) Сообщение об ошибке: «Значение не попадает в ожидаемый диапазон».
Я вставляю весь текст ниже:
Feedback Type:
Frown (Error)
Error Message:
Value does not fall within the expected range.
Stack Trace:
at Microsoft.Mashup.Client.Excel.NativeExcelFunctionsBase.ValidateResult(Int32 result, Int32[] expectedValues)
at Microsoft.Mashup.Client.Excel.NativeExcelFunctionsMSI.Microsoft.Mashup.Client.Excel.INativeExcelFunctions.GetConnectionProperties(IntPtr workbookPointer, String connectionName)
at Microsoft.Mashup.Client.Excel.NativeEventHandler.<>c__DisplayClass27.<OnListObjectCreated>b__25()
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
Stack Trace Message:
Value does not fall within the expected range.
Invocation Stack Trace:
at Microsoft.Mashup.Host.Document.ExceptionExtensions.GetCurrentInvocationStackTrace()
at Microsoft.Mashup.Client.UI.Shared.FeedbackErrorInfo..ctor(String message, Exception exception, Nullable`1 stackTraceInfo)
at Microsoft.Mashup.Client.Excel.Native.NativeUserFeedbackServices.ReportException(IWindowHandle activeWindow, IUIHost uiHost, FeedbackPackageInfo feedbackPackageInfo, Exception e, Boolean useGDICapture)
at Microsoft.Mashup.Client.UI.Shared.UnexpectedExceptionHandler.<>c__DisplayClass1.<HandleException>b__0()
at Microsoft.Mashup.Client.UI.Shared.UnexpectedExceptionHandler.HandleException(Exception e)
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
at Microsoft.Mashup.Client.Excel.ExcelCallbackManager.InvokeAndReturnHResult(Action action)
Supports Premium Content:
True
Не уверен, но где-то что-то не так! Цените чью-либо помощь в решении этой проблемы.