// // Функция получает таблицу из базы аксесса // Функция ПолучитьТаблицуАкцесса (Подключение, ИмяТаблици) Результат = СоздатьОбъект("ТаблицаЗначений"); Результат.Очистить(); Команда = СоздатьОбъект("ADODB.Command"); Команда.ActiveConnection=Подключение; ТекстСелект = "SELECT * FROM " + ИмяТаблици; НаборЗаписей = СоздатьОбъект("ADODB.RecordSet"); Команда.CommandText=ТекстСелект; Попытка НаборЗаписей=Команда.Execute(); Исключение Сообщить(ОписаниеОшибки()); Возврат -1; КонецПопытки; // надо создать колонки Для е = 0 по (НаборЗаписей.Fields.Count - 1) Цикл Результат.НоваяКолонка(СокрЛП(НаборЗаписей.Fields(е).Name)); КонецЦикла; Попытка НаборЗаписей.MoveFirst(); Исключение //нет записей в рекордсете НаборЗаписей.Close(); Возврат Результат; КонецПопытки; НаборЗаписей.MoveFirst(); Пока НаборЗаписей.EOF() = 0 Цикл // тут имеем строку записи //ОбработкаПрерыванияПользователя(); Состояние("Идет чтение таблицы <" + ИмяТаблици + "> - " + Обмен_Индикатор(Счетчик, МаксСчетчик)); Результат.НоваяСтрока(); Стр = ""; Для е = 0 по (НаборЗаписей.Fields.Count - 1) Цикл Результат.УстановитьЗначение(Результат.КоличествоСтрок(), СокрЛП(НаборЗаписей.Fields(е).Name), НаборЗаписей.Fields(е).Value); Если ВыводитьДанныеВСтрокуСообщений=1 Тогда Стр = Стр + "; " + НаборЗаписей.Fields(е).Name + "=" + НаборЗаписей.Fields(е).Value; КонецЕсли; КонецЦикла; Если ВыводитьДанныеВСтрокуСообщений=1 Тогда Сообщить (Стр); КонецЕсли; НаборЗаписей.MoveNext(); КонецЦикла; НаборЗаписей.Close(); Возврат Результат; КонецФункции // ******************************* // пример вызова // // // подключаемся // СтрокаПод="Driver={Microsoft Access Driver (*.mdb)};Dbq=" + ИмяФайла + ";"; Акцесс = СоздатьОбъект("ADODB.CONNECTION"); Попытка Акцесс.Open(СтрокаПод); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; // // получем таблицу с именем "Номенклатура" // ТабСпр = ПолучитьТаблицуАкцесса (Акцесс, """Номенклатура""");
Получение данных из Access
20.11.08
Интеграция - Внешние источники данных
Собствено опять даю пример затягивания таблицы из внешних данных, теперь немного другой :)