Я пытаюсь исправить инструмент Access / Excel, созданный моим коллегой, и я не уверен, как это сделать.Она только что покинула компанию, поэтому я не могу обратиться к ней с вопросами об этом инструменте.
У нее есть кнопка, настроенная на листе Excel.При нажатии кнопка должна создать новый лист и извлечь QueryTable из базы данных Access.
Вот ее код:
Sub Import()
'
' Import Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=1stEmail-MailMergeReady;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [1stEmail-MailMergeReady]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
Когда кнопка нажата, она успешно создает новый лист, а затем останавливается при создании таблицы (ExternalData_1: Getting Data ...
).Я получаю это сообщение об ошибке:
Expression.Error: The key didn't match any rows in the table
Когда я нажимаю Отладка, она выделяет строку .Refresh BackgroundQuery:=False
.
Я попытался заменить эту строку просто .Refresh
и получил то же сообщение об ошибке,Я также подтвердил, что все местоположения, на которые он указывает, действительны и не перемещались вообще.
Любая помощь очень ценится!