Vba импорт данных из access в access: Метод DoCmd.TransferSpreadsheet (Access) | Microsoft Learn

Метод DoCmd.TransferSpreadsheet (Access) | Microsoft Learn





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

Метод TransferSpreadsheet выполняет действие TransferSpreadsheet в Visual Basic.

Синтаксис

выражение.TransferSpreadsheet (TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)

выражение: переменная, представляющая объект DoCmd.

Параметры

ИмяОбязательный или необязательныйТип данныхОписание
TransferTypeНеобязательныйAcDataTransferTypeНужный тип переноса. Значение по умолчанию — acImport.
SpreadsheetTypeНеобязательныйAcSpreadSheetTypeТип электронной таблицы для импорта, экспорта или связи.
TableNameНеобязательныйVariantСтроковое выражение, являющееся именем таблицы Office Access, предназначенной для импорта данных электронной таблицы, экспорта данных электронной таблицы или связывания данных электронной таблицы, или запрос на выборку Access, результаты которого нужно экспортировать в электронную таблицу.
FileNameНеобязательныйVariantСтроковое выражение, являющееся именем и путем электронной таблицы для импорта, экспорта или связывания.
HasFieldNamesНеобязательныйVariantИспользуйте значение True (1), чтобы использовать первую строку электронной таблицы в качестве имен полей при импорте или связывании. Используйте значение False (0), чтобы считать первую строку электронной таблицы обычными данными. Если оставить этот аргумент пустым, предполагается, что используется значение по умолчанию (False). При экспорте таблицы или данных запроса на выборку Access в электронную таблицу имена полей записываются в первую строку электронной таблицы независимо от введенного значения этого аргумента.
RangeНеобязательныйVariantСтроковое выражение, являющееся допустимым диапазоном ячеек или именем диапазона в электронной таблице. Этот аргумент применяется только для импорта. Чтобы импортировать электронную таблицу целиком, оставьте этот аргумент пустым. При экспорте в электронную таблицу необходимо оставить этот аргумент пустым. Если ввести диапазон, экспорт завершится сбоем.
UseOAНеобязательныйVariantЭтот аргумент не поддерживается.

Используйте метод TransferSpreadsheet для импорта или экспорта данных между текущей базой данных Access или проектом Access (ADP) и файлом электронной таблицы. Вы также можете связать данные в электронной таблице Excel с текущей базой данных Access. Это позволит просматривать и изменять данные электронной таблицы с помощью Access, при этом не теряя возможность полного доступа к ним в Excel. Кроме того, вы можете связать данные в файле электронной таблицы Lotus 1-2-3, но они будут доступны в Access только для чтения.

Примечание.

Также можно использовать объекты данных ActiveX (ADO) для создания связи с помощью свойства ActiveConnection для объекта Recordset.

Пример

В следующем примере импортируются данные из указанного диапазона электронной таблицы Lotus Newemps.wk3 в таблицу Employees (Сотрудники) Access. В качестве имен полей используется первая строка электронной таблицы.

DoCmd.TransferSpreadsheet acImport, 3, _ 
 "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.






Макрокоманда ИмпортЭкспортЭлектроннойТаблицы | Microsoft Learn





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 4 мин

Область применения: Access 2013, Office 2013

Макрокоманду ИмпортЭкспортЭлектроннойТаблицы можно использовать для импорта или экспорта данных между текущей базой данных Access (MDB или ACCDB) или проектом Access (ADP) и файлом электронной таблицы. Вы также можете связать данные в электронной таблице Microsoft Excel с текущей базой данных Microsoft Access. Это позволит просматривать и изменять данные электронной таблицы с помощью Access, при этом не теряя возможность полного доступа к ним в Excel. Кроме того, вы можете связать данные в файле электронной таблицы Lotus 1-2-3, но они будут доступны в Access только для чтения.

Примечание.

Эта макрокоманда доступна только для доверенных баз данных.

Макрокоманда ПреобразоватьЭлектроннуюТаблицу имеет указанные ниже аргументы.

Тип преобразования

Нужный тип преобразования. В поле Тип преобразования в разделе Аргументы макрокоманды можно выбрать значение Импорт, Экспорт или Связь. Значение по умолчанию: Импорт.

ПРИМЕЧАНИЕ. Тип преобразования Связь не поддерживается для проектов Access (ADP).

Тип электронной таблицы

Тип электронной таблицы для импорта, экспорта или связи. В этом поле можно выбрать один из типов электронной таблицы. Значение по умолчанию: Книга Excel.

ПРИМЕЧАНИЕ. Можно импортировать данные из WK4-файлов Lotus или связать их (с доступом только для чтения), но нельзя экспортировать данные Access в этот формат. Кроме того, Access больше не поддерживает импорт, экспорт и связывание данных с помощью этой макрокоманды для WKS-файлов Lotus и электронных таблиц Excel версии 2.0. Если вы хотите импортировать или связать данные электронной таблицы в формате Excel версии 2.0 или Lotus WKS, необходимо преобразовать данные электронной таблицы в формат более поздней версии Excel или Lotus 1-2-3, прежде чем импортировать или связывать их.

Имя таблицы

Имя таблицы Access для импорта, экспорта или связывания данных электронной таблицы. Вы также можете ввести имя запроса на выборку Access, из которого следует экспортировать данные. Обязательный аргумент. Если для аргумента Тип преобразования выбрано значение Импорт, Access добавит данные электронной таблицы в указанную таблицу, если она уже существует. В противном случае Access создает новую таблицу для данных. При использовании в Access макрокоманды ИмпортЭкспортЭлектроннойТаблицы невозможно указать данные для экспорта с помощью инструкции SQL. Вместо этого необходимо сначала создать запрос, а затем указать имя запроса в аргументе Имя таблицы.

Имя файла

Имя файла электронной таблицы для импорта, экспорта или связи. Следует указывать полный путь. Обязательный аргумент. При экспорте данных из Access создается новая электронная таблица. Если имя файла совпадает с именем существующей электронной таблицы, Access заменяет ее, кроме случая экспорта в книгу Excel версии 5. 0 или более поздней. В этом случае Access копирует экспортируемые данные в следующий доступный новый лист в книге. При импорте или связывании электронной таблицы Excel версии 5.0 или более поздней можно указать отдельный лист с помощью аргумента Диапазон.

С именами полей

Указывает, должна ли первая строка электронной таблицы содержать имена полей. Если выбрано значение Да, Access использует имена в этой строке как имена полей в таблице Access при импорте или связывании электронной таблицы. Если выбрано значение Нет, Access обрабатывает первую строку как обычную строку данных. По умолчанию используется значение Нет. При экспорте таблицы или запроса на выборку Access в электронную таблицу имена полей записываются в первую строку электронной таблицы независимо от значения этого аргумента.

Диапазон

Диапазон ячеек для импорта или связи. Чтобы импортировать или связать электронную таблицу целиком, оставьте этот аргумент пустым. Вы можете ввести имя диапазона в электронной таблице или указать диапазон ячеек для импорта или связи, например А1:Е25 (обратите внимание, что синтаксис А1..Е25 не работает в Access 97 и более поздних версиях). При импорте или связывании электронной таблицы Excel версии 5.0 или более поздней можно добавить имя листа и восклицательный знак перед диапазоном, например Бюджет!А1:C7.

ПРИМЕЧАНИЕ. При экспорте в электронную таблицу необходимо оставить этот аргумент пустым. Если ввести диапазон, экспорт завершится сбоем.

Вы можете экспортировать данные запросов на выборку Access в электронные таблицы. Access экспортирует результирующий набор запроса так же, как таблицу.

Данные электронной таблицы, которые добавляются в существующую таблицу Access, должны соответствовать ее структуре.

  • Каждое поле в электронной таблице должно иметь тот же тип данных, что и соответствующее поле в таблице Access.

  • Поля должны следовать в том же порядке (за исключением случая, когда для аргумента С именами полей установлено значение Да: в этом случае названия полей в электронной таблице должны совпадать с именами полей в таблице Access).

Вызов данной макрокоманды аналогичен выбору Excel в группе Импорт или Экспорт на вкладке Внешние данные, а также выбору Дополнительно в группе Импорт или Экспорт с последующим щелчком варианта Файл Lotus 1-2-3. Вы можете использовать эти команды, чтобы выбрать источник данных, например базу данных Access или другого типа, электронную таблицу или текстовый файл. Если выбрана электронная таблица, на экране последовательно появляются диалоговые окна или запускается мастер Access, в котором можно указать имя электронной таблицы и другие параметры. Аргументы макрокоманды ИмпортЭкспортЭлектроннойТаблицы отражают параметры, заданные в этих диалоговых окнах или мастерах.

Примечание.

В запросах и фильтрах для связанной электронной таблицы учитывается регистр.

При связывании с электронной таблицей Excel, открытой в режиме редактирования, Access будет ждать окончания работы электронной таблицы Excel в этом режиме, чтобы завершить связывание; при этом нет ограничений по времени.

Чтобы выполнить макрокоманду ИмпортЭкспортЭлектроннойТаблицы в модуле Visual Basic для приложений (VBA), используйте метод TransferSpreadsheet объекта DoCmd.






Метод DoCmd.TransferSpreadsheet (Доступ) | Microsoft Узнайте

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья
  • 2 минуты на чтение

Метод TransferSpreadsheet выполняет действие TransferSpreadsheet в Visual Basic.

Синтаксис

выражение . Transferspreadsheet ( TransferType , Электронная таблица , TableName , Filename , HasfieldNames , Диапазон , , , , .

Параметры

Имя Требуется/дополнительно Тип данных Описание
TransferType Дополнительно AcDataTransferType Тип перевода, который вы хотите сделать. Значение по умолчанию — acImport .
Электронная таблица Дополнительно AcSpreadSheetType Тип электронной таблицы для импорта, экспорта или ссылки.
Имя таблицы Дополнительно Вариант Строковое выражение, представляющее собой имя таблицы Office Access, в которую вы хотите импортировать данные электронной таблицы, экспортировать данные электронной таблицы или связать данные электронной таблицы, или запрос выбора Access, результаты которого вы хотите экспортировать в электронную таблицу.
Имя файла Дополнительно Вариант Строковое выражение, представляющее собой имя файла и путь к электронной таблице, которую вы хотите импортировать, экспортировать или создать ссылку.
Хасфилднамес Дополнительно Вариант Используйте True (1), чтобы использовать первую строку электронной таблицы в качестве имен полей при импорте или связывании. Используйте False (0), чтобы рассматривать первую строку электронной таблицы как обычные данные. Если оставить этот аргумент пустым, предполагается значение по умолчанию ( False ). Когда вы экспортируете таблицу Access или выбираете данные запроса в электронную таблицу, имена полей вставляются в первую строку электронной таблицы независимо от того, что вы вводите для этого аргумента.
Диапазон Дополнительно Вариант Строковое выражение, представляющее собой допустимый диапазон ячеек или имя диапазона в электронной таблице. Этот аргумент применим только к импорту. Оставьте этот аргумент пустым, чтобы импортировать всю электронную таблицу. При экспорте в электронную таблицу этот аргумент необходимо оставить пустым. Если вы введете диапазон, экспорт завершится ошибкой.
Использование ОА Дополнительно Вариант Этот аргумент не поддерживается.

Используйте метод TransferSpreadsheet для импорта или экспорта данных между текущей базой данных Access или проектом Access (. adp) и файлом электронной таблицы. Вы также можете связать данные в электронной таблице Excel с текущей базой данных Access. С помощью связанной электронной таблицы вы можете просматривать и редактировать данные электронной таблицы с помощью Access, сохраняя при этом полный доступ к данным из вашей программы работы с электронными таблицами Excel. Вы также можете ссылаться на данные в файле электронной таблицы Lotus 1-2-3, но эти данные доступны только для чтения в Access.

Примечание

Вы также можете использовать объекты данных ActiveX (ADO) для создания ссылки, используя свойство ActiveConnection для объекта Recordset .

Пример

В следующем примере данные из указанного диапазона электронной таблицы Lotus Newemps.wk3 импортируются в таблицу Access Employees . Он использует первую строку электронной таблицы в качестве имен полей.

 DoCmd.TransferSpreadsheet acImport, 3, _
 "Сотрудники", "C:\Lotus\Newemps. wk3", True, "A1:G12"
 

Поддержка и отзывы

У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

Запрос на доступ к Excel — Панели мониторинга Excel VBA

В следующей статье объясняется, как импортировать запрос на доступ в Excel с помощью VBA. Сначала я настрою запрос в базе данных Access и вызову запрос в Excel. Если вы хотите импортировать часть запроса, возможно, стоит изучить импорт запроса с параметрами в Excel, который рассматривается в соответствующей теме. Процедура имеет ряд практических последствий: данные, которые не требуются, такие как объемные исходные данные, могут храниться в базе данных и вызываться при необходимости. Файл Excel работает с небольшими сводными данными и остается компактным. У вас есть возможность периодически обращаться к обновленным данным для обновления наборов данных Excel.
 
Приступая к работе Самое главное, что нужно сделать, это настроить подключение к MS Access.
 
В Excel нажмите Alt F11.
 
Теперь выберите Инструменты — Ссылки

Прокрутите обширный список, пока не найдете Microsoft Office xx.0 Database Engine Object (где xx выше 14.0)

Если вы используете версию ниже 2007, вам нужно обратить внимание сейчас. Для более ранних версий выберите Microsoft DAO XX Object Library. Не выбирайте, так как будет конфликт, и ваш процесс, вероятно, не будет запущен.

Теперь, когда вы подключены к Access, ниже приведено кодирование, которое заставит вашу процедуру работать.

Option Explicit
Sub ImpAccess() ‘Excel VBA для импорта запроса Access.

Dim MyDatabase As DAO.Database
Dim qryDef As DAO.QueryDef
Dim MyRecordset As DAO.Recordset

Set MyDatabase=OpenDatabase(«C:\Test\TestDb.accdb») ‘Имя БД
Set qryDef=MyDatabase.QueryDefs(» qryVanilla») ‘Имя запроса
Set MyRecordset=qryDef. OpenRecordset Sheet1.Range(«A11»).CopyFromRecordset MyRecordset

For i=1 To MyRecordset.Fields.Count ‘Заголовки для возврата

Sheet1.Cells(10, i).Value=MyRecordset.Fields(i — 1).Name

Далее я

Конец сабвуфера

Строки с фиолетовым — это строки, которые необходимо изменить при подключении к собственной базе данных. Приведенный выше пример вернет данные и заголовки. Если бы я выполнял эту процедуру, я бы поместил заголовки в файл, поскольку это было бы то, что вы знаете заранее, что означало бы, что вам не нужно было бы возвращать заголовки обратно.

Я включу файлы Excel и Access. Чтобы увидеть, как они работают вместе, просто сохраните базу данных в каталоге с именем «C:\Test\» и убедитесь, что вы вызываете файл TestDb.accdb. Это более новая версия Access. При необходимости измените расширение файла, чтобы оно соответствовало более старым версиям.

Я также включил файлы, которые работают в формате Access 2000 mdb.