Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 сен 2021, 09:23

Связь 1с и базы на Access

Автор Arhirru, 22 авг 2017, 12:09

0 Пользователей и 1 гость просматривают эту тему.

Arhirru

Всем доброго времени суток!
Мне поставили задачу наладить связь между 1с и базой Access так, что бы через 1с можно было бы создавать, просматривать, изменять, удалять записи в базе Access.Написала внешнюю обработку, подключила её к 1с и у меня стала ошибка вываливаться.
{ВнешняяОбработка.Импорт_данных_из_Access.Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Microsoft Access] Не удается найти файл '(нет данных)'.

Подскажите, что значит эта ошибка и как её исправить?

ilyay

Файл access с базой данных не был открыт.

AsadRoman

Что там у Вас с первой по одиннадцатую строку?

Arhirru

Народ, вот код обработки, гляньте, может подскажите, где там что не так!?
&НаКлиенте
Процедура Загрузить_данные(Команда)
   // Вставить содержимое обработчика.
    Файл = "C:\PGK.mdb" ;
   //СтрокаПодключения = "Driver={Microsoft Access Driver (*.mdb)};Dbq= + Файл + ;Uid=Admin;Pwd= " Extended Properties=""Access 8.0;HDR=NO;""";
    СтрокаПодключения  =   "Driver={Microsoft Access Driver (*.mdb)};Dbq= + Файл + ;Uid=lobankin ;Pwd=123 ";
    Connection = Новый COMОбъект("ADODB.Connection");
    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        Command = Новый COMОбъект("ADODB.Command");

    Command.ActiveConnection = Connection;
    Command.CommandText = "Select * FROM qdfMain";
    Command.CommandType = 1;
    RecordSet = Новый COMОбъект("ADODB.RecordSet");
    RecordSet = Command.Execute();
    стр ="";
      Пока RecordSet.EOF() = 0 Цикл
            для н=0 по  Recordset.Fields.Count -1 цикл
            стр = стр + " " + Recordset.Fields(н).Value;
         КонецЦикла;
      Сообщить(стр);
             стр ="";
        RecordSet.MoveNext();
      КонецЦикла;
   RecordSet.Close();
    Connection.Close();
КонецПроцедуры

Добавлено: 23 авг 2017, 13:23


Проблема решилась. Оказалось, была использована не верная строка соединения. Исправила на "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Program Files (x86)\ClientsCount\DemoDatabase.mdb;" и после этого соединение открылось.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск