Имя: Пароль:
1C
1C 7.7
v7: Не получается удалить строку файла экселя с помощью ADO
0 GreyK
 
16.06.16
13:11
Пытаюсь удалить 1 строку из сформированного и сохраненного в в файл Экселя отчета.

Текст процедуры:

//***
Процедура Сформировать()
    КаталогФайла = "D:\1CBases\Пищевик";
    ИмяФайла = "Отчет в Эрманн за Январь 2016 г.";
    db= СоздатьОбъект("ADODB.Connection");
    rs= СоздатьОбъект("ADODB.Recordset");
    db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+КаталогФайла+"\"+ИмяФайла+".xls"+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;""";
    //db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФайлаДанных+";Extended Properties=""Excel 8.0; IMEX=1;""";
    //HDR=NO - Имена полей имеют вид "F1, F2, F3..." то-есть буква "F" и порядковый номер колонки. Если данный параметр опустить
    // имена полей беруться из первой строки - для таблиц Экселя норма.
    db.Mode = 3; //чтение и запись
    db.Open();
    Catalog = СоздатьОбъект("ADOX.Catalog");
    Catalog.ActiveConnection = db;
    ИмяТаблицы = "'Каталог номенклатуры$'";
    Для iCount = 0 По Catalog.Tables.Count-1 Цикл
        Если Catalog.Tables.Item(iCount).Type <> "VIEW" Тогда
            ИмяТаблицы = Catalog.Tables.Item(iCount).Name;
            rs.ActiveConnection = db;
            rs.LockType = 3;
            rs.CursorType = 2;
            rs.Open("Select * from ["+ИмяТаблицы+"]");
            rs.MoveFirst();                
            rs.Delete(1);
            rs.Close();
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Выходит ошибка: "Microsoft JET Database Engine: Обновление невозможно. База данных или объект доступны только для чтения."
Пошарил по инету, но ничего путного не нашел. Прочитал кучу портянок, но воз и ныне там :(
1 Чайник Рассела
 
16.06.16
13:11
в гуглепоиск
2 b_ru
 
16.06.16
13:30
Jet не будет так работать. Надо или ADODB.Command + DELETE или с помощью COM-объекта Экселя.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший