Код VBA для импорта данных таблицы/запроса Access в Excel

Код VBA для импорта данных запроса таблицы Access в Excel
Оглавление

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

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

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

 

Почему?

Вы можете импортировать данные из таблиц Access в Excel, даже не открывая БД Access.

Как импортировать данные таблицы Access в Excel




Шаг 1: Откройте рабочую книгу Excel, зайдите в конструктор кода VBA (Alt + F11) и откройте новый модуль.

Xmodule

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

				
					Sub importAccessdata()

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim sQRY As String

Dim strFilePath As String

strFilePath = "C:\DatabaseFolder\myDB.accdb" 'Замените 'DatabaseFolder' и 'myDB.accdb' на путь к вашей БД и имя БД

Set cnn = New ADODB.Connection

Set rs = New ADODB.Recordset

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _

"Источник данных=" & strFilePath & ";"

sQRY = "SELECT * FROM tblData" 'Замените 'tblData' на имя вашей таблицы Access DB или имя запроса, из которого вы хотите загрузить данные

rs.CursorLocation = adUseClient

rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly

Application.ScreenUpdating = False

Sheet1.Range("A1").CopyFromRecordset rs

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

Exit Sub

End Sub
				
			

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

Импорт таблицы Access

Записи БД Access успешно загружены в Excel, откройте рабочую книгу Excel и проверьте данные.

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

Импорт таблицы AccessPin



Я уверен, что вы работаете с большим количеством данных Excel, MS Access и VBA, поэтому я Сильно Рекомендуем вам присоединиться к нижеприведенному Ultimate Excel VBA Userform с базой данных Access! Это достойная инвестиция в себя! СДЕЛАЙТЕ ЭТО ПРЯМО СЕЙЧАС!

Создайте свою собственную программу в реальном мире, изучите настоящий Excel VBA(макросы), превзойдите границы Excel с помощью полного проекта

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

10 ответов

  1. Привет, хотел проверить, если я сохраню свою Access DB на общем диске и распространю этот макрос excel в моей организации, будет ли он работать? Я хочу, чтобы мой макрос excel считывал некоторые значения из этой базы данных Access DB и затем обновлял некоторую переменную при открытии excel.

    Также, если Access не работает, могу ли я использовать другой excel, хранящийся в организации на одном диске, и получить доступ к нему вместо DB. Я пробовал использовать метод открытия рабочей книги в макросе, чтобы прочитать мой excel из onedrive, который является общим для всех в моей компании, но это не сработало.

  2. В конце концов, мне это удалось.

    Я использую 2 переменные (textbox1 в качестве значения 'currency, format R$0.000,00' и textbox2 в качестве 'date', format mm/dd/yyy).

    Код ↓

    ‘====================================================|
    '========================================== Kauê Vaz==|
    ‘====================================================|

    Вариант явный

    ' Нажмите Инструменты, Ссылки и выберите
    ' Библиотека Microsoft ActiveX Data Objects 2.0
    Sub getDataFromAccess(strValue, strDate)

    Dim DBFullName As String
    Dim Connect As String, Source As String
    Dim Connection As ADODB.Connection
    Dim Recordset As ADODB.Recordset
    Dim Col As Integer
    Dim mySQLVariable As String
    Dim mySQLVariable_1 As String
    Dim strSQL As String

    mySQLVariable = strValue 'Значение из текстового поля1 (формат валюты R$0.000,00)
    mySQLVariable_1 = strDate 'Значение из textbox2 (формат даты mm/dd/yyy)

    'SQL-код
    strSQL = "SELECT * FROM tblDatabase WHERE "
    strSQL = strSQL & " [Значение] = '" & (mySQLVariable) & "' и "
    strSQL = strSQL & " [Дата] = '" & (mySQLVariable_1) & "' "

    ' База данных, выберите доступ к базе данных
    DBFullName = "C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb"

    ' Открыть соединение
    Set Connection = New ADODB.Connection
    Connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
    Connect = Connect & "Источник данных=" & DBFullName & ";"
    Connection.Open ConnectionString:=Connect

    ' Создание RecordSet
    Set Recordset = Новый ADODB.Recordset
    С набором записей

    ' Поиск значений с помощью переменной strSQL кода SQL
    Источник = strSQL
    .Open Source:=Source, ActiveConnection:=Connection

    ' Импорт столбцов из базы данных.
    For Col = 0 To Recordset.Fields.Count - 1
    Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).Name
    Следующий

    ' Импорт строк из базы данных.
    Range("A5").Offset(1, 0).CopyFromRecordset Recordset
    Конец с

    Set Recordset = Nothing
    Connection.Close
    Установить соединение =

    ActiveSheet.Columns.AutoFit

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

    С уважением,

  3. Могу ли я импортировать только некоторые данные? Фильтрация по 2 переменным?
    Пример:

    X = 13/03
    Y = '122315124'

    Взять из access bd только строки, содержащие эти переменные?

Добавить комментарий для RAMANATHAN MUTHIAH Отменить ответ

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

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

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

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

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