Всем добрый день!
Появилась у меня необходимость загрузить данные из Excel в Access из-за большого объема данных, с которыми Excel справляется, но слишком туго.
Сейчас все выглядит так: макрос обрабатывает внешний Excel-файл, пишет в массив данные, а затем выгружает их в Excel уже в необходимом виде. Решил сделать то же самое, но выгружать данные в Access. И вот ковыряясь в литературе и на форумах, не смог найти способ выгрузки данных не просто с листа или с диапазона, а именно из массива. Вообще, возможно ли сделать такой SQL-запрос?
Сейчас делаю вот так:
но это, как я и говорил, - вставка данных с листа, а не из массива. Пытался крутить массив так и эдак - не вышло.
Подскажите, возможно ли в данном случае оперировать массивом и вообще в ту ли степь я пошел
Спасибо.
Появилась у меня необходимость загрузить данные из Excel в Access из-за большого объема данных, с которыми Excel справляется, но слишком туго.
Сейчас все выглядит так: макрос обрабатывает внешний Excel-файл, пишет в массив данные, а затем выгружает их в Excel уже в необходимом виде. Решил сделать то же самое, но выгружать данные в Access. И вот ковыряясь в литературе и на форумах, не смог найти способ выгрузки данных не просто с листа или с диапазона, а именно из массива. Вообще, возможно ли сделать такой SQL-запрос?
Сейчас делаю вот так:
Код |
---|
tName = "TestTable" xlSheetName = ThisWorkbook.ActiveSheet.Name xlFile = ThisWorkbook.Path & "\" & ActiveWorkbook.Name Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & xlFile & "; Extended Properties=""Excel 12.0; Xml; HDR=Yes""" Set dbcn = New ADODB.Connection dbcn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & dbFile 'стираем старую таблицу, если она есть On Error Resume Next strSQL = "DROP TABLE [" & tName & "]" dbcn.Execute strSQL On Error GoTo 0 'создаем новую таблицу с нужными полями strSQL = "CREATE TABLE [" & tName & "] ([num] integer, [date] date, [summ] long)" dbcn.Execute strSQL 'вставляем данные в таблицу strSQL = "INSERT INTO [" & tName & "] SELECT * FROM [" & xlSheetName & "$] IN '" & xlFile & "' [Excel 12.0; Xml; hdr=yes;]" dbcn.Execute strSQL cn.Close dbcn.Close Set cn = Nothing Set dbcn = Nothing |
Подскажите, возможно ли в данном случае оперировать массивом и вообще в ту ли степь я пошел
Спасибо.