Что такое ado в vba

Использование ADO с Microsoft Visual Basic

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

Настройка проекта ADO и написание кода ADO аналогично тому, используете ли вы Visual Basic или Visual Basic для приложений. Этот раздел адресов с помощью ADO с Visual Basic и Visual Basic для приложений и отмечает любые различия.

Ссылки на библиотеку ADO

Библиотека ADO должна быть со ссылкой на ваш проект.

Ссылка на ADO из Microsoft Visual Basic

Выберите microsoft ActiveX объекты данных x.x Library из списка. Убедитесь, что выбраны по крайней мере следующие библиотеки:

Нажмите кнопку ОК.

Вы можете использовать ADO так же легко с Visual Basic для приложений, например с помощью Microsoft Access.

Ссылка на ADO из Microsoft Access

В Microsoft Access выберите или создайте модуль из вкладки Модули в окне Базы данных.

Выберите microsoft ActiveX объекты данных x.x Library из списка. Убедитесь, что выбраны по крайней мере следующие библиотеки:

Нажмите кнопку ОК.

Создание объектов ADO в Visual Basic

Чтобы создать переменную автоматизации и экземпляр объекта для этой переменной, можно использовать два метода: Dim или CreateObject.

Вы можете использовать ключевое слово New with Dim для объявления и мгновенного объявления объектов ADO за один шаг:

Кроме того, объявление дим-заявления и моментация объектов также могут быть двумя шагами:

Не требуется явно использовать прогид ADODB с заявлением Dim, если вы правильно ссылались на библиотеку ADO в проекте. Однако его использование гарантирует, что у вас не будет конфликтов именования с другими библиотеками.

Например, если вы включаете ссылки на ADO и DAO в одном проекте, необходимо включить квалификатор, чтобы указать объектную модель, которую следует использовать при моментации объектов Recordset, как в следующем коде:

Dim adoRS As ADODB.Recordset

Dim daoRS As DAO.Recordset

CreateObject

С помощью метода CreateObject мгновенный декларирование и объект должны быть двумя дискретными шагами:

Объекты, мгновенные с помощью CreateObject, связаны с опозданием, что означает, что они не сильно введите и завершение командной строки отключено. Однако это позволяет пропустить ссылки на библиотеку ADO из проекта и позволяет мгновенно использовать определенные версии объектов. Например:

Это также можно сделать, создав ссылку на библиотеку типов ADO версии 2.0 и создав объект.

Мгновенные объекты с помощью метода CreateObject обычно медленнее, чем с помощью дим-заявления.

Обработка событий

Чтобы обрабатывать события ADO в Microsoft Visual Basic, необходимо объявить переменную уровня модуля с помощью ключевого слова WithEvents. Переменная может быть объявлена только в составе классового модуля и должна быть объявлена на уровне модуля. Более полное обсуждение обработки событий ADO см. в главе 7. Обработка событий ADO.

Visual Basic примеры

Многие Visual Basic включены в документацию ADO. Дополнительные сведения см. в примерах кода ADO в Microsoft Visual Basic.

Источник

Основные принципы ADO

ADO предоставляет разработчикам мощную, логическую объектную модель для программного доступа, редактирования и обновления данных из разнообразных источников данных с помощью OLE DB системных интерфейсов. Наиболее распространенным применением ADO является запрос таблицы или таблиц в реляционной базе данных, получение и отображение результатов в приложении и, возможно, предоставление пользователям доступа и сохранение изменений в данных. К другим задачам относятся следующие.

выполнение запросов к базе данных с помощью SQL и отображение результатов.

Доступ к информации в хранилище файлов через Интернет.

Управление сообщениями и папками в системе электронной почты.

Сохранение данных из базы данных в XML-файл.

Выполняя команды, описанные в XML и получая XML-поток.

Сохранение данных в двоичный или XML-поток.

Предоставление пользователю возможности просмотра и изменения данных в таблицах базы данных.

Создание и повторное использование параметризованных команд базы данных.

Выполнению хранимых процедур.

Динамическое создание гибкой структуры, именуемой набором записей, для хранения, перемещения и управления данными.

Выполнение операций с транзакционными базами данных.

Фильтрация и сортировка локальных копий сведений о базе данных на основе критериев времени выполнения.

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

Привязка полей базы данных к компонентам, поддерживающим данные.

Создание удаленных, отключенных наборов записей.

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

В большинстве приложений, использующих ADO, участвуют четыре основные операции: получение данных, проверка данных, изменение данных и обновление данных. Эти операции рассматриваются более подробно далее в этом разделе.

тем не менее, прежде чем обсуждать эти детали, мы представим обзор объектной модели ado и простого приложения ado, написанного на® Microsoft Visual Basic® и выполняющего каждую из четырех основных операций ADO:

Источник

Использование библиотеки ADO (Microsoft ActiveX Data Object)

Понятие о библиотеке ADO

Библиотека ADO (Microsoft ActiveX Data Object) служит для доступа к базам данных различных типов и предоставляет объектный программный интерфейс к интерфейсу OLE DB, который предлагается компанией Microsoft как альтернатива интерфейсу ODBC. Объектная модель ADO реализована на базе технологии COM (Component Object Model).

Основными объектами библиотеки ADO являются объекты Connection, Command и Recordset.

Объект Connection

Объект Connection обеспечивает создание подключения к источнику данных и эквивалентен текущему сетевому соединению с сервером. Объект Connection предоставляет возможность настройки соединения перед его открытием, установки базы данных по умолчанию, установки и разрыва соединения с источником данных, задания настроек и выполнения команды с помощью метода Execute. Примечание: для выполнения команды можно использовать также метод Execute объекта Command, не прибегая к объекту Connection.

Объект Connection создаётся следующим образом:

Set objConn = CreateObject(«ADODB.Connection»)

После этого вы можете вызывать и использовать методы и свойства этого объекта для доступа к базам данных:

RollbackTrans()Вызов метода BeginTrans начинает новую транзакцию. Провайдеры, которые поддерживают вложенные транзакции, при вызове метода BeginTrans в пределах открытой транзакции начинают новую, вложенную транзакцию. Возвращаемое методом BeginTrans значение указывает уровень вложения: возвращаемое значение «1» указывает, что вы открыли транзакцию верхнего уровня (то есть транзакция не вложена в пределах другой транзакции), «2» указывает, что вы открыли транзакцию второго уровня (транзакция, вложенная в пределах транзакции верхнего уровня), и т.д.

Вызов метода CommitTrans сохраняет изменения, сделанные в пределах открытой транзакции и завершает транзакцию. Вызов метода RollbackTrans полностью отменяет любые изменения, сделанные в пределах открытой транзакции и завершает транзакцию. Вызов любого из этих методов в момент, когда нет никакой открытой транзакции, генерирует ошибку. Вызовы методов CommitTrans или RollbackTrans затрагивают только последнюю открытую транзакцию; вы должны закрыть или откатить текущую транзакцию прежде, чем разрешить любые высокоуровневые транзакции.BeginTransComplete(TransactionLevel, pError, adStatus, pConnection)

CommitTransComplete(pError, adStatus, pConnection)

Объект Error содержит информацию об ошибках доступа к данным, которые принадлежат отдельной операции провайдера. Вы можете обратиться к свойствам объекта Error, чтобы получить информацию о каждой ошибке:

Описание
DescriptionСодержит строку, определяющую короткое описание ошибки. Это свойство по умолчанию.
NumberСодержит уникальный код, определяющий тип ошибки (целое число).
SourceИдентифицирует имя объекта, который вызвал ошибку (строка).
SQLStateСодержит строку из пяти символов, которая указывает код ошибки по стандарту SQL ANSI.
NativeErrorСодержит определённый провайдером код ошибки (целое число).

Подключаемся к базе данных и выполняем запрос с помощью объекта Connection:

Работаем с ошибками провайдера:

Пример асинхронного подключения и обработки событий:

Пример асинхронного выполнения запроса и обработки событий:

Пример работы с транзакциями:

Пример работы с методом OpenSchema:

Динамические свойства объектов

Вы можете изменять значения (Value) этих свойств, но не их характеристики (Attributes). Вы не можете удалить такое свойство.

Чтение коллекции Properties:

Смена текущей базы данных с помощью коллекции Properties:

Объект Command

Объект Command создаётся следующим образом:

Set objComm = CreateObject(«ADODB.Command»)

После этого вы можете вызывать и использовать методы и свойства этого объекта.

Объект Command существует для задания и выполнения команд и запросов. Хотя запрос можно выполнить и без использования объекта Command (с помощью метода Execute объекта Connection или метода Open объекта Recordset), объект Command незаменим при выполнении запроса с параметрами и удобен в случае, когда требуется сохранить текст команды для её повторного использования. Объект Command может быть использован как в паре с объектом Connection, так и без него, т.к. строку подключения можно задать непосредственно в свойстве ActiveConnection объекта Command.

Свойства и методы объекта Command:

Объект Parameter является членом коллекции Parameters и представляет собой параметр запроса с параметрами (например, критерий сравнения предложения WHERE оператора SELECT) или параметр хранимой процедуры. В зависимости от функциональных возможностей провайдера некоторые методы или свойства объекта Parameter могут быть недоступны. Если вы знаете имена и свойства параметров, связанных с хранимой процедурой или параметризованным запросом, вы можете использовать метод CreateParameter для создания объектов Parameter и метод Append() для добавления их к коллекции параметров. Это позволит вам не вызывать метод Refresh() коллекции параметров, чтобы отыскать информацию о параметрах с помощью провайдера (потенциально ресурсоёмкая операция). Свойства и методы объекта Paramrter:

Пример «независимого» использования объекта Command:

Пример использования объекта Command в паре с объектом Connection:

Пример получения информации о параметрах хранимой процедуры:

Объект Recordset

Объект Recordset создаётся следующим образом:

Set objConn = CreateObject(«ADODB.Recordset»)

После этого вы можете вызывать и использовать методы и свойства этого объекта. Объект Recordset состоит из записей и полей. Не все свойства объекта поддерживаются всеми провайдерами.

Чтобы открыть набор записей в одном из рассмотренных четырёх режимов, необходимо задать соответствующее значение свойству CursorType или параметру CursorType метода Open. Не все провайдеры поддерживают все типы курсоров. По умолчанию используется курсор типа Forward-only.

При открытии объекта Recordset текущей записью становится первая запись, а свойства EOF и BOF получают значение False.

Свойства и методы объекта Recordset:

Коллекция полей Fields

Коллекция полей Fields является свойством объекта Recordset и поддерживает следующие свойства и методы:

Объект Field

Объект Field представляет собой столбец данных одного типа, т.е. поле набора записей. Кроме того, объект Field может представлять собой поле единичной записи (объекта Record, который не рассматривается в данной статье). Свойства объекта Field:

Пример «независимого» использования объекта Recordset:

Источник

9.2 Что такое ADO

Объекты ADO в приложениях VBA, MDAC, справка по ADO, объекты Connection, Command и Recordset

ADO.NET в этой книге рассматриваться не будет.

ADO умеет работать с самыми разными драйверами для подключения к базам данных, например, с драйверами OLE DB и ODBC. Поскольку ADO построен по технологии COM, эти объекты можно использовать в любых COM-совместимых языках программирования (VC++, Visual Basic, Delphi, VBA, VBScript, JScript, ActivePerl и т.п.).

Сами программные объекты поставляются в наборе драйверов для подключения к базам данных, которые называются MDAC (Microsoft Data Access Components). Этот набор есть на любом компьютере под управлением Windows 2000, XP или Windows 2003 (обычно сразу несколько версий). Самую свежую его версию можно совершенно бесплатно скачать с Web-сайта Microsoft. Настоятельно рекомендуется отслеживать появление новых версий MDAC и устанавливать их на компьютерах пользователей.

Что такое ado в vba. Смотреть фото Что такое ado в vba. Смотреть картинку Что такое ado в vba. Картинка про Что такое ado в vba. Фото Что такое ado в vba

Рис. 9.1 Справка по ADO в Microsoft Access

Сама по себе объектная модель ADO очень проста и понятна. В ней — всего три главных объекта:

Для каждого из этих трех объектов предусмотрена также коллекция Properties, которая определяет соответственно свойства соединения, команды или набора записей.

Все объекты явно создавать необязательно — например, при создании объекта Recordset можно в автоматическом режиме создать объект Connection.

Прежде, чем приступать к работе с объектами ADO, необходимо добавить в вашем проекте ссылку на необходимую библиотеку. Для этого в меню Tools нужно выбрать References и установить флажок напротив строки Microsoft ActiveX Data Objects с нужным номером (в зависимости от того, какая версия библиотеки установлена у вас на клиентских компьютерах, на которых будет работать данное приложение). На момент создания этого курса последней версией MDAC была версия 2.8. Однако на практике рекомендуется выбирать более старую версию, например, версию 2.1, которая поставляется со всеми версиями Windows, начиная с Windows 2000. Функциональность разных версий практически одинакова, но при использовании этой версии вы сможете переносить свою программу на VBA с компьютера на компьютер, не беспокоясь о том, что на него нужно что-то доустанавливать.

Источник

Пример использования технологии ADO для чтения и записи данных в книге Excel

Обзор

В образце ExcelADO.exe показано, как использовать объекты данных ActiveX (ADO) с помощью Microsoft Jet OLE DB 4.0 поставщика для чтения и записи данных в книге Microsoft Excel.

Дополнительные сведения

Зачем использовать ADO?

Использование ADO для передачи данных или извлечения данных из книги Excel дает вам, разработчик, несколько преимуществ по сравнению с автоматизации в Excel:

Производительность. Microsoft Excel является сервером ActiveX out-of-process. ADO работает в работе и экономит ресурсы дорогостоящих вызовов out-of-process.

Масштабируемость. Для веб-приложений не всегда желательно для автоматизации приложения Microsoft Excel. ADO предоставляет гибкий решения для обработки данных в книге.

ADO может использоваться исключительно для передачи необработанных данных в книге. Нельзя использовать ADO для применения форматов и формул в ячейки. Тем не менее можно перенести данные в книгу, предварительно отформатированы и формат сохраняется. Если требуется «условное» форматирование после вставки данных, можно выполнить форматирование с помощью автоматизации или макросов в книге.

Особенности поставщика Jet OLE DB для книг Excel

Ядро базы данных Microsoft Jet может использоваться для доступа к данным в других форматах файлов базы данных, например, книгам Excel через устанавливаемые драйверы индексно-последовательного метода доступа (ISAM). Для открытия внешних форматов, поддерживаемых Microsoft Jet 4.0 OLE DB поставщик, указать тип базы данных в расширенных свойствах подключения. Поставщик данных Jet OLE DB поддерживает следующие типы базы данных для книги Microsoft Excel:

Примечание: используйте тип базы данных источника Excel 5.0 для книги Microsoft Excel версии 5.0 и 7.0 (95) и использовать тип базы данных источника Excel 8.0 для книги Microsoft Excel (97) 8.0 и 9.0 (2000). В примере ExcelADO.exe используется книг Excel в формате Excel 97 и Excel 2000.

В следующих примерах демонстрируется книги Excel 97 (или 2000) ADO:

Соглашения об именах таблиц

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

Используйте диапазон с определенным именем (например, [«Table1»]).

Использовать диапазон с определенным адресом (например, [Лист1$ A1: B10]).

С книгами Excel первая строка диапазона считается строкой заголовков (или имена полей) по умолчанию. Если первый диапазон не содержит заголовков, можно указать HDR = нет в расширенные свойства строки подключения. Если первая строка содержит заголовки, поставщик OLE DB автоматически имена полей для вас (где первое поле представляет F1, F2 бы представляют второе поле и т. д).

В отличие от традиционных баз данных нет не предусмотрена возможность указывать типы данных для столбцов в таблицах Excel. Вместо этого поставщик OLE DB сканирует ограниченное число строк в столбце Тип данных для поля «догадаться». Число строк для просмотра по умолчанию для восьми (8) строк; можно изменить количество строк для проверки, указав значение от 1 (один) до шестнадцати (16) для параметра MAXSCANROWS в расширенные свойства строки подключения.

Файлы, включенные в образце

Файл ExcelADO.exe содержит проект Visual Basic стандартный exe-ФАЙЛ ASP (ASP), Excel 97 и Excel 2000 книги, выступать в роли шаблонов и базы данных Microsoft Access 2000. Ниже перечислены файлы, включенные.

Файлы проекта Visual Basic стандартный проект EXE

Книги Microsoft Excel

База данных Microsoft Access

Использование образца

Использование проекта Visual Basic.

В Visual Basic откройте файл ExcelADO.vbp.

Нажмите клавишу F5 для запуска программы. Откроется форма для демонстрации.

Выберите Пример 1. В этом примере создается копия OrdersTemplate.xls. Затем он использует ADO для подключения к книге и открывается набор записей в таблице, которая представляет собой определенный диапазон в книге. Имя диапазона является Orders_Table. Он использует ADO AddNew/обновление методов для добавления записей (или строк) для определенного диапазона в книге. После завершения добавления строк ADO подключение закрывается и книга отображается в Microsoft Excel. Выполните следующие действия, чтобы сделать это.

В меню Вставка в Excel выберите именаи выберите Определение.

В список определенных имен выберите Orders_Table. Обратите внимание, что для включения новых добавленных записей достиг определенного имени. Определенное имя используется, в сочетании с Microsoft Excel функции СМЕЩ, для вычисления суммы с данными на листе.

Выйти из Microsoft Excel и вернуться в приложение Visual Basic.

Щелкните Образец 2. В этом примере создается копия EmpDataTemplate.xls. Он использует ADO для подключения к книге и использует метод Execute подключения ADO для вставки данных (INSERT INTO в SQL) в книге. Данные будут добавлены в определенных диапазонов (или таблиц) в книге. При передаче данных, подключение закрывается и книга, результаты отображаются в Excel. После изучения книги выйти из Microsoft Excel, а затем вернитесь в приложение Visual Basic.

Щелкните Образец 3. В этом примере создается копия ProductsTemplate.xls. Он использует 2.1 расширения Microsoft ADO для DDL и безопасности библиотеки объектов (ADOX) для добавления новой таблицы (или новый лист) в книге. Затем получается набор записей ADO для новой таблицы и добавления данных с помощью метода AddNew/Update методы. После завершения добавления строк ADO подключение закрывается и книга отображается в Excel. Книга содержит Visual Basic для приложений макроса (VBA) в события Open для книги. Запуск макроса при открытии книги; Если в книгу новый лист «Продукты», код макроса форматирует лист и затем удаляется код макроса. Этот метод предоставляет способ для веб-разработчиков переместить код форматирования от веб-сервера и на стороне клиента. Приложение может поток форматированного книги, которая содержит данные для клиента и разрешить код макроса, который будет выполнять любые «условное» форматирование, веб-узел не удастся в шаблон отдельно для запуска на клиенте.

Примечание: чтобы проверить код макроса, просматривать модуле ThisWorkbook в VBAProject по ProductsTemplate.xls.

Щелкните Образец 4. Этот пример создает те же результаты, как пример 1, но применяется несколько иной метод, используемый для передачи данных. В примере 1 записи (или строки) добавляются на лист один за один раз. Пример 4 добавляет записи в пакетном режиме путем присоединения таблицы Excel к базе данных и выполнения запроса на добавление (или INSERT INTO. SELECT FROM) для добавления записей в таблицу Excel из таблицы в таблицу Access. После завершения передачи данных таблицы Excel отсоединяется от базы данных Microsoft Access и книгу, результаты отображаются в Excel. Выйти из Excel и вернуться в приложение Visual Basic.

Последний пример иллюстрирует, как можно прочитать данные из книги Excel. Выберите таблицу в раскрывающемся списке и щелкните Образец 5. Открывшееся окно отображает содержимое выбранной таблицы. При выборе целого листа («Лист1$» или «Лист2$») в таблице окна «Интерпретация» отображает содержимое диапазона используется для листа. Обратите внимание, что используемый диапазон не обязательно начинается в строке 1, столбец 1 листа. Используемый диапазон начинается с верхней левой ячейки в лист, содержащий данные.

При выборе определенного диапазона адресов или определенного диапазона, открывшееся окно отображает содержимое только диапазон на листе.

Чтобы использовать ASP (ASP).

Создайте новую папку с именем ExcelADO в домашнем каталоге веб-сервера. Обратите внимание, что путь по умолчанию для основного каталога C:\InetPut\WWWRoot.

Скопируйте следующие файлы в папку, созданную на предыдущем шаге:

Источник

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

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