У меня возникла проблема, которая возникает случайным образом (запустите ее на моей машине - она работает около 90% времени, пара attemps на машине клиента она не работает 100 % времени) вот код:Импорт данных из Excel для доступа с использованием ms excel vba
sub importdata()
Dim dbpath As String
Dim acc As New Access.Application
'bunch of stuff
acc.OpenCurrentDatabase dbpath & "\Database.accdb"
acc.DoCmd.TransferSpreadsheet acImport, 10, "tbl_SalesData", dbpath & "\Dashboard 2015.04.17.xlsm", True, "DataForImport!"
acc.CloseCurrentDatabase
acc.Quit
'bunch of more stuff
end sub
DataForImport является лист, где хранятся данные. Это в таблице; однако доступ не смог распознать имя таблицы «Продажи» как диапазон для импорта, поэтому я пошел с импортом всего листа.
на машине клиента код выводит сообщение об ошибке в строке transferpreadsheet (пытается открыть еще один экземпляр excel с файлом панели мониторинга и говорит, что файл уже открыт, ошибка три тысячи); однако на моей машине он работает отлично.
Неужели кто-нибудь сталкивался с подобной проблемой? есть ли лучший способ оттолкнуть данные от Excel для доступа? Если нет, передает ли список рассылки закрытым файлам, поэтому мне нужно закрыть файл, в который я импортирую данные из (Dashboard), прежде чем запускать этот фрагмент кода и повторно открыть его после ?
Спасибо!
Ответ:
сохранение временного файла и толкая от него работает хорошо
Workbooks.Add.SaveAs dbpath & "\tempwb.xlsx"
Set tempwb = Application.Workbooks("tempwb.xlsx")
Application.Workbooks(dashboard).Activate
acc.OpenCurrentDatabase dbpath & "\Database.accdb"
Application.Workbooks(dashboard).Sheets("DataForImport").Copy Before:=tempwb.Sheets(1)
tempwb.Save
tempwb.Close
acc.DoCmd.TransferSpreadsheet acImport, 10, "tbl_SalesData", dbpath & "\tempwb.xlsx", True, "DataForImport!"
Kill dbpath & "\tempwb.xlsx"
acc.CloseCurrentDatabase
acc.Quit
Set acc = Nothing
Вы можете попробовать открыть набор записей dao. выполнить запрос выбора. и нажмите набор результатов в свой диапазон? –
проверить драйверы odbc в инструментах панели управления/администрировании – scraaappy
будут ли драйверы odbc находиться под источниками данных odbc в инструментах администратора? –