Добавление строк в связанную Excel таблицу

kayodza
Дата: 18.01.2012 11:47:45
Господа, прошу совета

В базе для добавления строк в таблице использовался программный код конструкции
INSERT INTO ...
SELECT ...
WHERE ..

Сейчас из-за большого объема этой таблицы и использования ее в других базах принято решение вынести ее в Excel файл и установить с ней внешнюю связь.

Есть ли в такой ситуации какой-то способ "попроще", нежели чем добавлять строки через Recordset и цикл ?

Do While Not rst.EOF
For j = 0 To rst.Fields.Count - 1
xlSheet.Cells(i, j + 1) = CStr(Nz(rst.Fields(j), ""))
Next j
rst.MoveNext
i = i + 1
Loop
Программист-Любитель
Дата: 18.01.2012 11:51:04
kayodza
Господа, прошу совета

В базе для добавления строк в таблице использовался программный код конструкции
INSERT INTO ...
SELECT ...
WHERE ..

Сейчас из-за большого объема этой таблицы и использования ее в других базах принято решение вынести ее в Excel файл и установить с ней внешнюю связь.

Есть ли в такой ситуации какой-то способ "попроще", нежели чем добавлять строки через Recordset и цикл ?

Do While Not rst.EOF
For j = 0 To rst.Fields.Count - 1
xlSheet.Cells(i, j + 1) = CStr(Nz(rst.Fields(j), ""))
Next j
rst.MoveNext
i = i + 1
Loop

Полный пестдетс.
Анатолий ( Киев )
Дата: 18.01.2012 11:52:46
kayodza
Есть ли в такой ситуации какой-то способ "попроще", нежели чем добавлять строки через Recordset и цикл ?

Есть.
xlSheet.Cells(i, 1).CopyFromRecordset rst
Где i - номер первой пустой строки.
mds_world
Дата: 18.01.2012 11:55:03
Программист-Любитель
+100500



kayodza
Есть ли ... какой-то способ "попроще", нежели чем добавлять строки через Recordset и цикл ?

Copyfromrecordset. Быстро и удобно.
Программист-Любитель
Дата: 18.01.2012 11:58:39
mds_world
Программист-Любитель
+100500
kayodza
Есть ли ... какой-то способ "попроще", нежели чем добавлять строки через Recordset и цикл ?

Copyfromrecordset. Быстро и удобно.

И это тоже не менее полный. Ворлд, ты что ???

Давать советы относительно вынесения таблицы из бд в ексель для ускорения работы и обеспечения одновременного доступа - вы чё, совсем все с ума посходили ?
Joss
Дата: 18.01.2012 12:05:43
автор
Сейчас из-за большого объема этой таблицы и использования ее в других базах принято решение вынести ее в Excel файл и установить с ней внешнюю связь.
Полный маразм. Почему её не вынести в отдельную базу MDB?

Ограничение на число строк Excel в версиях до 2007 - 65536

Не все версии Access поддерживают работу с подлинкованными таблицами Excel, как со своими собственными. Этот вопрос несколько раз поднимался на форуме. С некоторых пор Microsoft заблокировала эту возможность. Для каких версий Access, можно уточнить поиском по форуму.

Многопользовательская работа с подлинкованной Excel таблицей под большим вопросом. Как тут разрешаются конфликты доступа? Я лично без понятия.

И кто этот "гений", что выдвинул такое предложение?
mds_world
Дата: 18.01.2012 12:11:35
П-Л, это 2 независимых вопроса. По, первому, мягко говоря, неудачному решению согласен на все 100.

Второй вопрос не касается структурных решений, вопрос чисто технологический. На него и ответ такой же.
Joss
Дата: 18.01.2012 12:17:18
Второй вопрос завязан на первый и без первого не имеет смысла.
mds_world
Дата: 18.01.2012 12:19:56
Joss
Второй вопрос завязан на первый и без первого не имеет смысла.

Только в данном случае.

Вы же не хотите сказать, что автоматизация не нужна вообще.
Joss
Дата: 18.01.2012 12:30:00
Ну мы ж тут обсуждаем определённый случай, а не вообще. Но да, вставка целым рекордсетов в лист Excel более быстро, чем перебор по циклу. Но в Access есть хорошая фишка. Если при вставке не заданы значения для поля, то вставляются значения по умолчанию, а в Excel это придётся учитывать.

А как на счёт многопользовательской работы, когда два пользователя одновременно захотят вставить записи?