Код 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


Picture of Anson Antony
Энсон Энтони
Энсон — соавтор и основатель компании 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 не будет опубликован. Обязательные поля помечены *

Поздравляем!
Ты сделал это,
Не закрывайтесь!

Вставай 60 000 Кредиты на персонажей UberTTS бесплатно!!!

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

УберТТС
28
Share to...