Использование ADO с данными Excel из Visual Basic или VBA

Переводы статьи Переводы статьи
Код статьи: 257819 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье рассматривается использование объектов данных ActiveX (ADO) с помощью электронных таблиц Microsoft Excel в качестве источника данных. В статье также выделение синтаксиса проблемы и ограничения, относящиеся к Microsoft Excel. Эта статья не обсуждаются OLAP или технологий сводной таблицы или других специализированных использует из Excel данные.

Для дополнительной сведения, щелкните следующий номер статьи для просмотра статьи в База знаний корпорации Майкрософт:
303814 Использование ADOX с данными Excel из Visual Basic или VBA

Дополнительная информация

ВВЕДЕНИЕ

Строки и столбцы из таблиц Microsoft Excel тесно напоминать строк и столбцов таблицы базы данных. До тех пор, пока пользователям хранить в против Microsoft Excel не является система управления реляционными базами данных, и распознавать ограничения, которые накладывает этот факт, часто имеет смысл воспользоваться преимущества Excel и его средства для хранения и анализа данных.

Корпорация Майкрософт Объекты данных ActiveX позволяет рассматривать книги Excel, как если бы он был База данных. В данной статье рассматривается пример приведен ниже разделы: ПРИМЕЧАНИЕ: Для этой статьи Тестирование проводилось с данными Microsoft Доступ компонентов MDAC 2.5 для Microsoft Windows 2000 с помощью Visual Basic 6.0 Пакет обновления 3 и Excel 2000. В этой статье не может подтвердить или обсуждать различия в поведении, пользователи могут наблюдать за различные версии MDAC, Microsoft Windows, Visual Basic или Excel.

Подключиться к Microsoft Excel с помощью ADO

ADO можно подключиться к файлу данных Excel либо одно из двух OLE Поставщики DB в MDAC:
  • Поставщик OLE DB Microsoft Jet - или -

  • Поставщик Microsoft OLE DB для драйверов ODBC

Использование поставщика Microsoft Jet OLE DB

Поставщик Jet требует только два фрагмента информации в порядке для подключения к источнику данных Excel: путь, включая имя файла и Версия файла Excel.

С помощью строки подключения поставщика данных Jet
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0;"
	.Open
End With
				
Версия поставщика: Это необходимо для использования поставщика данных Jet 4.0; очередь Поставщик Jet 3.51 не поддерживают драйверы Jet ISAM. Если задать Jet 3.51 Поставщика во время выполнения, появляется следующее сообщение об ошибке:
Невозможно найти устанавливаемый ISAM.
Версии ExcelДля указания Excel 5.0 для книги Microsoft Excel 95 (версия 7.0 из Microsoft Excel) и Excel 8.0 для Excel 97, Excel 2000 или Microsoft Excel 2002 (XP) книги (версии 8.0, 9.0 и 10.0 Excel).

С помощью диалогового окна Свойства связи данных поставщика данных Jet

При использовании элемента управления данными ADO или среды данных в приложении а затем Свойства связи с данными Появится диалоговое окно для сбора необходимых подключений параметры.
  1. На Поставщик Выберите поставщика данных Jet 4.0; Поставщик Jet 3.51 не происходит Поддержка драйверов Jet ISAM. Если указан поставщик Jet 3.51, во время выполнения появляется следующее сообщение об ошибке:
    Не удалось найти Устанавливаемый драйвер ISAM.
  2. На Подключение Вкладка Обзор файла книги. Игнорировать «Идентификатор пользователя» и Операции «Пароль», так как они не применяются для подключения к Microsoft Excel. (Вы не удается открыть защищенный паролем файл Excel в качестве источника данных. Больше сведения по этой теме далее в этой статье).
  3. На Все Вкладка выбора Расширенные свойства в списке, а затем нажмите кнопку Изменение значения. Введите Excel 8.0; Отделение от других существующих записей точкой с запятой (;). Если пропустить этот шаг, то сообщение об ошибке при тестировании вашего подключение, так как поставщик Jet ожидает базу данных Microsoft Access, если не указано иное.
  4. Возврат к Подключение вкладки и нажмите кнопку Проверка соединения. Обратите внимание, что появится сообщение о том, что процесс выполнен успешно.
Другие параметры подключения поставщика Jet

Заголовки столбцов: По умолчанию предполагается, что первая строка источник данных Excel содержит заголовки столбцов, которые могут использоваться как поле имена. Если это не так, необходимо включить этот параметр или ваш первый Строка данных «исчезает» для использования в качестве имен полей. Это делается путем добавления Дополнительно HDR = Установка в Расширенные свойства в строке соединения. По умолчанию, не нужно быть указано, является HDR = Yes. Если у вас нет заголовков столбцов, необходимо указать HDR = нет; Поставщик имена полей F1, F2, и т.д. Так как Расширенные свойства Строка теперь содержит несколько значений, он должен быть заключен в двойные кавычки, сама, а также дополнительные пары двойных кавычек, чтобы сообщить Visual Основные следует рассматривать как литеральные значения, как показано в следующих первый набор квот Пример (где лишние пробелы будут добавлены для наглядность).
.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=" " Excel 8.0; HDR=No;" " "
				

Используя поставщик Microsoft OLE DB для драйверов ODBC

Поставщик для драйверов ODBC (которые в данной статье относится к как «Поставщик ODBC"для простоты для краткости) также требуется только два (2) штук сведения для подключения к источнику данных Excel: имя драйвера и путь к книге и имя файла.

ВАЖНЫЕ: Подключение ODBC для Microsoft Excel по умолчанию только для чтения. Приложения ADO Набор записей LockType значение свойства не переопределяет данный параметр уровня подключения. Необходимо установить Только для чтения Кому Значение false в строке подключения или конфигурацию DSN, если требуется Чтобы изменить данные. В противном случае появляется следующее сообщение об ошибке:
Операции должен использоваться обновляемый запрос.
С помощью строки подключения без DSN ODBC поставщик
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "MSDASQL"
	.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=C:\MyFolder\MyWorkbook.xls; ReadOnly=False;"
	.Open
End With
				
С помощью строки подключения с помощью источника данных ODBC поставщик
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "MSDASQL"
	.ConnectionString = "DSN=MyExcelDSN;"
	.Open
End With
				
Поставщик ODBC с помощью диалогового окна Свойства связи с данными

При использовании элемента управления данными ADO или среды данных в приложении а затем Свойства связи с данными Появится диалоговое окно для сбора необходимых подключений параметры.
  1. На Поставщик Вкладка выбора Поставщик Microsoft OLE DB для драйверов ODBC.
  2. На Подключение Установите флажок существующего источника данных, который требуется использовать, или выберите Использовать строку подключения. Эта команда открывает стандартное диалоговое конфигурации источника данных для Соберите требуемые настройки подключения. Не забудьте снять выделение по умолчанию только для чтения значение в случае необходимости, как упоминалось ранее.
  3. Возврат к Подключение вкладки и нажмите кнопку Проверка соединения. Обратите внимание, что появится сообщение о том, что процесс выполнен успешно.
Другие параметры подключения поставщика ODBC

Заголовки столбцов: По умолчанию предполагается, что первая строка источник данных Excel содержит заголовки столбцов, которые могут быть использованы как поле имена. Если это не так, необходимо включить этот параметр или ваш первый Строка данных «исчезает» для использования в качестве имен полей. Это делается путем добавления Дополнительно FirstRowHasNames = Настройка строки подключения. По умолчанию, который не поддерживает необходимо указать, является FirstRowHasNames = 1, где 1 = True. Если у вас нет заголовков столбцов, необходимо указать FirstRowHasNames = 0, где 0 = False; драйвер имена полей F1, F2 и т. д. Этот параметр не доступен в диалоговом окне настройки источника данных.

Однако из-за к Ошибка в драйвере ODBC, указание FirstRowHasNames Установка в настоящее время не влияет. Другими словами ODBC Microsoft Excel драйвер (MDAC 2.1 или более поздней версии) всегда рассматривает первую строку в указанные данные источник как имена полей. Для дополнительных informationon Заголовок столбца ошибки, обратитесь к статье в в Microsoft Knowledge Base:
288343 Ошибка: Драйвер ODBC Microsoft Excel игнорирует FirstRowHasNames или параметр заголовка
Строк для просмотра: Microsoft Excel не поддерживает ADO с подробной схемы сведения о данных, он содержит, как реляционные базы данных. Таким образом драйвер необходимо сканировать через по крайней мере несколько строк из существующих Чтобы сделать предположение обоснованные в тип данных каждого столбца данных. В по умолчанию «Строк для сканирования» составляет восемь (8) строк. Можно указать целое значение из одного (1) до шестнадцати (16) строки, или можно указать ноль (0) для проверки существующие строки. Это делается путем добавления дополнительного MaxScanRows = Настройка строки подключения или путем изменения Строк для просмотра параметр в диалоговом окне настройки источника данных.

Тем не менее, Ошибка в драйвере ODBC для указания строк для просмотра (MaxScanRows) Установка в настоящее время не влияет. Другими словами драйвер ODBC Microsoft Excel (MDAC 2.1 и более поздних версий) всегда сканирует первые восемь строк в указанный источник данных в Чтобы определить тип данных каждого столбца.

Для получения дополнительных сведений о Строки для проверки ошибок, включая простое решение, щелкните следующий номер статьи Приведенные ниже статьи базы знаний Майкрософт:
189897 XL97: Данные будут усечены до 255 символов с помощью драйвера ODBC Microsoft Excel
Другие параметры: Если при создании строки подключения с помощью очередь Свойства связи с данными диалоговое окно, можно заметить некоторые другие Расширенные свойства параметры добавляются в строку подключения, которые не являются абсолютно необходимо, например:
... DefaultDir=C:\WorkbookPath;DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;PageTimeout=5;
				
«Порядок сортировки» сообщение об ошибке в редакторе Visual Basic

В среде разработки Visual Basic с определенными компоненты MDAC версии, может появиться сообщение первым время ошибки в программа подключается к источнику данных Excel во время разработки:
Выбранная последовательность сортировки, не поддерживается операционной системой.
Это сообщение появляется только в интегрированной среде разработки и не будет отображаться в скомпилированном версия программы. Для Дополнительные сведения, щелкните следующий номер статьи для просмотра статьи в в Microsoft Knowledge Base:
246167 PRB: Разбор по копиям последовательности Ошибка открытия ADODB записей первом запуске Excel XLS

Вопросы, касающиеся обоих поставщиков OLE DB

Предупреждение о смешанных типов данных

Как уже говорилось ранее, должна быть определена ADO на тип данных для каждого столбца в таблице Excel или диапазон. (Это не влияет на Excel параметры форматирования ячеек). Серьезная проблема может возникнуть, если у вас есть числовые значения, смешанного с текстовыми значениями в одном столбце. Оба Jet и Поставщик ODBC возвращают данные того типа, но вернуть значение NULL (пустые) значения для типа данных доли миноритария. Если равной степени смешиваются двух типов столбец, поставщик выбирает цифровой над текстом.

Например:
  • В вашем 8 (восьми) проверенных строк, если столбец содержит пять (5) числовые значения и текстовые значения трех (3), поставщик возвращает пять (5) числа и значения null три (3).
  • В вашем 8 (восьми) проверенных строк, если столбец содержит три (3) числовые значения и текстовые значения пять (5), поставщик возвращает три (3) имеет значение null и текстовые значения 5 (пять).
  • В вашем 8 (восьми) проверенных строк, если столбец содержит четыре (4) числовые значения и текстовые значения четырех (4), поставщик возвращает четырем (4) числа и значения null четыре (4).
Как результат, если в столбец содержит смешанные значения только доступный ресурс используется для хранения числовых значений в этом столбце как текст и преобразовывать их к началу номера при необходимости в клиентское приложение с помощью Visual Basic ФУНКЦИЯ VAL функция или наличие эквивалентных прав.

Для временного решения этой проблемы включить данные только для чтения Режим импорта с помощью параметра «IMEX = 1 "в разделе расширенные свойства в строке соединения. Это приводит к использованию ImportMixedTypes = текст параметр реестра. Тем не менее Обратите внимание, что обновление может привести к неожиданным результаты в этом режиме. Для получения дополнительных сведений об этом параметре нажмите кнопку ниже номер статьи базы знаний Майкрософт:
194124 PRB: Microsoft Excel значения, возвращаемые как NULL, с помощью DAO OpenRecordset
Не удается открыть книгу с парольной защитой

Если книга Excel защищен паролем, вы не удается открыть его для доступа к данным, даже, указав правильный пароль с параметры подключения, если файл книги уже открыт в Приложение Microsoft Excel. При попытке, появляется следующее сообщение об ошибке сообщение об ошибке:
Не удалось расшифровать файл.
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт Основание:
211378 XL2000: Ошибка «Не удалось расшифровать файл» с паролем защищенный файл

Извлечение и изменение данных Excel с помощью ADO

В этом разделе рассматриваются два аспекта работы с вашей Excel данные:
  • Как выделить данные - и -

  • Изменение данных

Выбор данных

Существует несколько способов для выбора данных. Вы можете:

  • Выбор данных Excel с помощью кода.
  • Выбор данных Excel с помощью элемента управления данными ADO.
  • Выбор данных Excel с помощью среды данных команды.

Выбор данных Excel с помощью кода

Данные Microsoft Excel, содержатся в книге в одном из следующий:

  • Весь лист.
  • Именованный диапазон ячеек на листе.
  • Неименованный диапазон ячеек на листе.
Укажите лист

Чтобы указать лист как ваш источник записей, используйте рабочий лист название доллара и заключены в квадратные скобки. Для Пример:
	strQuery = "SELECT * FROM [Sheet1$]"
				
Можно также разделить имя листа с помощью наклонного одиночная кавычка знак (') на клавиатуре под тильды (~). Например:
	strQuery = "SELECT * FROM `Sheet1$`"
				
Microsoft предпочитает квадратные скобки, которые являются численными Формат записи имен объектов базы данных проблем.

Если опустить оба знак доллара и квадратные скобки или просто доллара, получение следующее сообщение об ошибке:
... ядро базы данных Jet не удается найти указанный объект
Если этот символ используется, но опустить квадратные скобки, будет выдано следующее сообщение об ошибке:
Ошибка синтаксиса в предложении FROM.
При попытке использовать обычные одинарные кавычки, появляется следующее сообщение об ошибке:
Синтаксическая ошибка в запросе. Неполное предложение запроса.
Укажите именованный диапазон

Чтобы задать именованный диапазон ячеек как ваш источник записей просто используйте определенное имя. Например:
	strQuery = "SELECT * FROM MyRange"
				
Задать неименованный диапазон

Чтобы задать неименованный диапазон ячеек, как ваш Источник записей, добавление стандартной записи Excel строки или столбца в конце листа имя в квадратные скобки. Например:
	strQuery = "SELECT * FROM [Sheet1$A1:B10]"
				
Предупреждение об указании листов: Поставщик предполагает, что начинается таблицы данных с самого верхнего, слева, непустые ячейки на указанный лист. В другими словами, таблицы данных можно начать 3 строки, столбца c без затруднений. Тем не менее не может например, введите название worksheeet сверху и слева данные в ячейку A1.

Предупреждение об указании диапазонов: При указании листа как ваш источник записей Поставщик добавляет новые записи под существующие записи в журнале как пробел позволяет. При указании диапазона (с именем или неименованные), Jet также добавляет новые записи ниже существующих записей в диапазоне как место позволяет. Однако если вы обновление на исходном диапазоне, результирующий набор записей не включает новые записи вне допустимого диапазона.

С MDAC версий до 2.5, при указании именованный диапазон нельзя добавлять новые записи за пределами определенные пределы диапазона, или появляется следующее сообщение об ошибке:
Не удается развернуть именованного диапазона.

Выбор данных Excel с помощью элемента управления данными ADO

После задания параметров подключения данных Excel источник на Общие Вкладка ADODC Свойства диалоговое окно, нажмите на Источник записей Вкладка. Если CommandType adCmdText, введите Запрос на выборку в Текст команды диалоговое окно с синтаксис, описанный ранее. Если выбрать CommandType adCmdTable, и при использовании поставщика данных Jet в раскрывающемся списке список именованных диапазонов и имена листов, которые доступны в выбранной книги с помощью именованных диапазонов, первой в списке.

Это диалоговое окно поле правильно добавляет знак доллара в имена листов, но не добавляет необходимые квадратные скобки. Как результат, если просто выбрать название и нажмите ОК, позже появляется следующее сообщение об ошибке:
Ошибка синтаксиса в предложении FROM.
Вы должны вручную добавьте квадратные скобки вокруг имени листа. (Это поле со списком Разрешить изменение.) Если при использовании поставщика ODBC можно увидеть только с именем диапазоны, перечисленные в этом раскрывающемся списке. Тем не менее, можно ввести вручную Имя листа с соответствующие разделители.

Выбор данных Excel с помощью команды данных среды

После настройки среды подключения данных в Excel данные источника, создать новый Команда объект. Если выбрать Источник данных из Инструкция SQL, можно ввести запрос в текстовом поле, используя синтаксис, описанный ранее. Если выбрать Источник данных из Объект базы данных, выберите Таблицы в первом раскрывающемся списке, а при использовании поставщика данных Jet Отображает раскрывающийся список именованных диапазонов и именами листов в выбранной книги с помощью именованных диапазонов, первой в списке. (Если вы выбрали Имя листа в этом месте не требуется добавлять квадратные скобки вокруг Имя листа вручную, как сделать для элемента управления данными ADO). Если вы являетесь с помощью поставщика ODBC, вы видите только именованные диапазоны, перечислены в раскрывающемся списке список. Тем не менее можно вручную ввести имя рабочего листа.

Способы изменения данных: изменение, добавление и удаление

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

Данные Microsoft Excel можно редактировать с помощью обычных методов ADO. Полям набора записей, которые соответствуют ячеек в листе Excel, содержащую Формулы Excel (начиная с «=») доступны только для чтения и не могут быть изменены. Помните, что подключение ODBC в Excel только для чтения по умолчанию, если только вы в противном случае укажите в параметрах подключения. См. выше в разделе "использование Поставщик Microsoft OLE DB для драйверов ODBC."

Добавить

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

В некоторых случаях при использовании Метод AddNew и Обновление методы ADO Набор записей объект для вставки новых строк в таблицу Excel, ADO могут Вставка значений данных в неправильный столбцов в Excel. Для получения дополнительных сведений щелкните статью ниже номер статьи базы знаний Майкрософт:
314763 ИСПРАВЛЕНИЕ: ADO вставляет данные в неправильном столбцов в Excel
Удалить

Более ограничены в Excel данных, чем при удалении данные из реляционного источника данных. В реляционной базе данных не имеет «строка» значение и существование отдельно от «запись»; на листе Excel не имеет значение true. Значения полей (ячейки), можно удалить. Однако нельзя:
  1. Одновременное удаление всей записи или получения следующее сообщение об ошибке:
    Удаление данных в связанной таблице не поддерживается этим драйвером ISAM.
    Можно удалить только записи гашение содержимое каждого отдельного поля.
  2. Удалите значение в ячейку, содержащую формулу Excel или появляется следующее сообщение об ошибке:
    Операция не использовать в данном контексте.
  3. Не удается удалить пустые таблицы строк в котором Удаленные данные был задан и набор записей будет отображаться пустым записи, соответствующие эти пустые строки.
Предупреждение об изменении данных Excel с помощью ADO: При вставке данных в Excel с помощью ADO, текстовое значение перед с одинарной кавычки. Это может вызвать проблемы позже Работа с новыми данными.

Получить структуру источника данных (метаданные) из Excel

Можно получить данные о структуре данных Excel источник (таблицы и поля) с помощью ADO. Результаты отличаются немного между ними Поставщики OLE DB, несмотря на то, что по крайней мере возвращают одинаковые небольшое количество полезных поля данных. Эти метаданные могут быть получены с помощью OpenSchema метод ADO Подключение Объект, который возвращает набор данных ADO Набор записей объект. Можно также использовать более мощные данных Microsoft ActiveX Объекты расширения языка определения данных и безопасности (ADOX) библиотеки для этой цели. Из источника данных Excel, где «таблица» — лист или именованный диапазон и «поле» является одним из ограниченного числа универсальные типы данных такая дополнительная мощь не полезно.

Запрос информации О таблице

Различных объектов, доступных в реляционной базе данных (таблицы, представления, хранимые процедуры и т.д.), предоставляющий источник данных Excel только таблицы эквивалентов, состоящий из листа и именованных диапазонов определенные в указанной книги. Именованные диапазоны, рассматриваются как «Таблицы» и листы, рассматриваются как «Системные таблицы», а не много полезных таблицы информацию можно получить за это свойство «table_type». Для запроса Список доступных таблиц в книге с помощью следующего кода:
Set rs = cn.OpenSchema(adSchemaTables)
				
Поставщик Jet возвращает набор записей с девять (9) поля, из которого он заполняет только четыре (4):

  • table_name
  • TABLE_TYPE («Таблица» или «Системные таблицы»)
  • date_created
  • date_modified
Два поля для данной таблицы всегда показывать же значение, которое кажется «Дата последнего изменения.» Другими словами, «date_created» не является надежным.

Возвращает поставщика ODBC набор записей с полями девять (9), из которых заполняется только три (3):

  • table_catalog, папки, в которой находится книга найти.
  • TABLE_NAME.
  • TABLE_TYPE, как отмечалось ранее.
Согласно документации ADO существует возможность извлечения Список листов только, например, указав следующие дополнительные условия для OpenSchema метод:
Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "System Table"))
				
К сожалению этот способ не работает от источника данных Excel с Позже, чем 2.0, либо поставщик версии MDAC.

Сведения О поле запроса

Каждое поле (столбец) в источнике данных Excel является одним из следующие типы данных:

  • Числовой (тип данных ADO 5, adDouble)
  • Валюта (тип данных ADO 6, adCurrency)
  • логическое или логическое значение (тип данных ADO 11, adBoolean)
  • Дата (тип данных ADO 7, adDate, с помощью Jet; 135, adDBTimestamp с помощью ODBC)
  • текст (ADO ad...Тип Char, такие как 202, adVarChar, 200, adVarWChar или аналогичные)
Numeric_precision для числового столбца всегда возвращается как 15 (который является максимальной точности в Microsoft Excel); character_maximum_length текст всегда возвращается столбец как 255 (что является максимальным отображаемую ширину но не максимальную длину, текст в столбце Excel). Существует не так уж много полезные сведения, можно получить за пределы data_type свойство. Запросить список доступных полей в таблице с помощью следующего кода:
Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, "TableName", Empty))
				
Поставщик Jet возвращает набор записей, содержащий 28 поля, которое Она заполняет 8 (восьми) для числовых полей и девять (9) для текстовых полей. В полезные поля являются скорее всего это:

  • table_name
  • column_name
  • ordinal_position
  • data_type
Поставщик ODBC возвращает набор записей, содержащий 29 полей из который он заполняет 10 (десяти) для числовых полей и 11 для текстовых полей. В полезные полей одинаковы как ранее.

Перечисляет таблицы и поля и их свойства

Можно использовать для кода Visual Basic (например, следующий пример) Перечисляет таблицы и столбцы источника данных Excel и доступно поля сведений о каждом. В этом примере результат его элемент Listbox List1 в той же форме.
Dim cn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim intTblCnt As Integer, intTblFlds As Integer
Dim strTbl As String
Dim rsC As ADODB.Recordset
Dim intColCnt As Integer, intColFlds As Integer
Dim strCol As String
Dim t As Integer, c As Integer, f As Integer
Set cn = New ADODB.Connection
With cn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=" & App.Path & _
"\ExcelSrc.xls;Extended Properties=Excel 8.0;"
	'.Provider = "MSDASQL"
	'.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & App.Path & "\ExcelSrc.xls; "
	.CursorLocation = adUseClient
	.Open
End With
Set rsT = cn.OpenSchema(adSchemaTables)
intTblCnt = rsT.RecordCount
intTblFlds = rsT.Fields.Count
List1.AddItem "Tables:	" & intTblCnt
List1.AddItem "--------------------"
For t = 1 To intTblCnt
	strTbl = rsT.Fields("TABLE_NAME").Value
	List1.AddItem vbTab & "Table #" & t & ":	" & strTbl
	List1.AddItem vbTab & "--------------------"
	For f = 0 To intTblFlds - 1
		List1.AddItem vbTab & rsT.Fields(f).Name & _
vbTab & rsT.Fields(f).Value
	Next
	List1.AddItem "--------------------"
	Set rsC = cn.OpenSchema(adSchemaColumns, Array(Empty, Empty, strTbl, Empty))
	intColCnt = rsC.RecordCount
	intColFlds = rsC.Fields.Count
	For c = 1 To intColCnt
		strCol = rsC.Fields("COLUMN_NAME").Value
		List1.AddItem vbTab & vbTab & "Column #" & c & ": " & strCol
		List1.AddItem vbTab & vbTab & "--------------------"
		For f = 0 To intColFlds - 1
			List1.AddItem vbTab & vbTab & rsC.Fields(f).Name & _
vbTab & rsC.Fields(f).Value
		Next
		List1.AddItem vbTab & vbTab & "--------------------"
		rsC.MoveNext
		Next
		rsC.Close
		List1.AddItem "--------------------"
		rsT.MoveNext
Next
rsT.Close
cn.Close
				

С помощью окна представления данных

При создании источника данных для источника данных Excel в визуальный элемент Основные окна представления данных в окне просмотра данных отображает те же сведения, можно получить программным путем, как описано выше. Обратите внимание, в частности, что поставщик Jet список листов и именованных диапазонов в разделе «Таблицы» где поставщика ODBC показывает только именованные диапазоны. При использовании ODBC Поставщик и на которых не определен будут все именованные диапазоны, в списке «Таблицы» пустой.

Ограничения Excel

При использовании Excel в качестве источника данных связан с внутренней ограничения книги и листы Excel. Они включают, но не не более:

  • Размер листа: 65536 строк и 256 столбцов
  • Ячейка содержимое (текст): 32 767 символам
  • Листов в книге: ограничено объемом доступной память
  • Имена в книге: ограничено объемом доступной памяти

Ссылки

Для получения дополнительных сведений об использовании ADO.NET извлекать и изменять записи в книге Excel с помощью Visual Basic.NET, нажмите кнопку номер следующей статьи базы знаний Майкрософт Основание:
316934Как использовать ADO.NET для извлечения и изменения записей в книге Excel с помощью Visual Basic.NET
Для получения дополнительных сведений нажмите кнопку следующие номера статей базы знаний Майкрософт:
295646 Перенос данных из источника данных ADO в Excel с помощью ADO
246335 Способы передачи данных из набора записей ADO в Excel с помощью автоматизации
247412 ИНФОРМАЦИЯ: Методы для передачи данных в Microsoft Excel из Visual Basic
278973 Пример: Пример использования технологии ADO для чтения и записи данных в книге Excel
318373 Как получить метаданные из Microsoft Excel с помощью метода GetOleDbSchemaTable в Visual Basic.NET

Свойства

Код статьи: 257819 - Последний отзыв: 17 сентября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic for Applications 6.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Ключевые слова: 
kbhowto kbiisam kbmt KB257819 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:257819

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com