Код VBA для экспорта данных Excel в Access

Код VBA для экспорта данных Excel в Access
Оглавление

Экспорт данных Excel в Access с помощью VBA (изображения и код)

Что это такое?

Этот VBA-код поможет вам загрузить или экспортировать данные Excel в Access одним щелчком мыши.

Почему?

Вы можете экспортировать данные Excel в Access, даже не открывая базу данных Access.

Как экспортировать данные Excel в Access





Шаг 1: Откройте Эксель лист и перейдите в конструктор кода VBA (Alt + F11) и откройте новый модуль

.Экспорт данных Excel в Access

Шаг 2: Скопируйте и вставьте в него приведенный ниже код.

Const TARGET_DB = "myDB.accdb" 'Замените 'myDB.accdb' на имя вашей базы данных, убедитесь, что и Excel, и Access DB находятся по одному пути.
Sub PushTableToAccess()
Dim cnn As ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim i As Long, j As Long
Dim Rw As Long

Sheets("Имя листа").Activate 'Замените "Имя листа" на имя вашего листа Excel
Rw = Range("A65536").End(xlUp).Row
'Дайте вашему листу Excel данные Range

Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB

С CNN
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
Конец с

'Замените 'tblMyExcelUpload' на имя вашей таблицы в Access

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="tblMyExcelUpload", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Параметры:=adCmdTable

'Загрузите все записи из Excel в Access.
For i = 2 To Rw
rst.AddNew
Для j = 1 - 7
rst(Cells(1, j).Value) = Cells(i, j).Value
Следующий j
rst.Update
Следующий i

' Закройте соединение
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing

Конец субтитра

Шаг 3Нажмите кнопку "Выполнить" или F5. (Также вы можете вставить кнопку/форму в лист excel, затем щелкнуть правой кнопкой мыши и назначить этот макрос для выполнения каждый раз). Вы закончили загрузку!!! Записи Excel успешно загружены в Access, откройте таблицу Access DB и проверьте данные.

Экспорт данных Excel в Access

Примечание: Убедитесь, что 'Microsoft ActiveX Data Objects Library' включена в меню Инструменты - Ссылки (используйте последнюю версию [6.1 на момент публикации]).

Adodb_Export Excel Data To AccessPin


Энсон Энтони
Энсон Энтони
Энсон — соавтор и основатель компании www.askeygeek.com. Изучение чего-то нового всегда было его страстью, а ASKEYGEEK.com — результат его страсти к технологиям и бизнесу. Он имеет десятилетний разносторонний опыт в области аутсорсинга бизнес-процессов, финансов и бухгалтерского учета, информационных технологий, операционного совершенствования и бизнес-аналитики. За время своего пребывания в должности он работал в таких организациях, как Genpact, Hewlett Packard, M*Modal и Capgemini, занимая различные должности и обязанности. Помимо бизнеса и технологий, он любитель кино, который часами вместе смотрит и изучает кино, а также кинорежиссер!

9 ответов

  1. Всем привет;

    Должны ли эти два пути быть одинаковыми, чтобы ADODBConnection работало? То есть ThisWorkbook.Path и Target_DB.
    Командуйте сверху:
    ThisWorkbook.Path & Application.PathSeparator & TARGET_DB

    Или можно указать Workbook.Path следующим образом
    "C:\MyExcelFiles\MyWorkbook.xlsx" и база данных Access TARGET_DB находится в
    "C:\MyDataBases\MyAccessDB.accdb"?

    Мой код работает, когда Excel WorkBook и Access DB находятся в одной папке, но когда они находятся в разных папках (правильно организованная структура библиотеки), код терпит неудачу в точке .Open MyConn.

    Спасибо всем,
    Марио,

  2. rst(Cells(1, j).Value) = Cells(i, j).Value

    код ломается здесь
    ----
    Ошибка 3265
    Элемент не найден в коллекции, соответствующей запрашиваемому имени или порядковому номеру
    ----

  3. Здравствуйте,

    мой код работает до тех пор, пока

    Sheets("Имя листа").Activate

    Я выделил лист, но дальше ничего не происходит.

    Не могли бы вы посоветовать?

    Спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поздравляем!
Ты сделал это,
Не закрывайтесь!
Введите свой шанс на победу 100 000 кредитов персонажей UberTTS
Спасибо Вам за Ваш визит!

Это всплывающее окно не покажет вам решать снова!!!

Пасхальное яйцо UberTTS 100K
28
Share to...