Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 11:30   #1
pla
 
Регистрация: 12.11.2010
Сообщений: 8
По умолчанию Err 91 : Object variable or With block variable not set

Здравствуйте! Прошу помощи в таком вопросе: из Access вывожу отчет в Excel, иногда приходится добавлять строки. Проблема в следующем - первый раз отчет идеальный, во второй раз выдает сообщение, приведенное в заголовке,
вот моя процедура:
Код:
Dim objXL As Object, objWS As Object, objWB As Object
Dim fld As Field
Dim strFileName As String 
Dim intCol As Integer
Dim intRow As Integer
Dim nazt(4) As String
nazt(1) = "rbiologik"
nazt(2) = "rhimic"
nazt(3) = "rshf"
nazt(4) = "prshf"
psp = Me![ПолеСоСпискомПредприятие]
pro = Me![ГодПрофосмотра]
strFileName = "\\Server\Профосмотры\Reports\ЗаключительныйАкт.xls"
Set objXL = CreateObject("Excel.Application")
Set objWB = objXL.Workbooks.Open("\\Server\Профосмотры\Shablon\ШаблонАкт.xls")
Set objWS = objWB.Sheets(1) 
    
objXL.Visible = False
Set dbs = CurrentDb
.
.
.
на этом месте выскакивает 91 ош.
objWS.Rows(intRow).Select
Selection.Insert Shift:=xlDown
.
.
.
    objWB.SaveAs (strFileName)
    objXL.Visible = True


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.10.2011 в 14:13.
pla вне форума Ответить с цитированием
Старый 13.10.2011, 13:36   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Надо вместо: Set dbs = CurrentDb
Написать:
dim db as database
Set db = CurrentDb
gluk_fm вне форума Ответить с цитированием
Старый 13.10.2011, 13:55   #3
pla
 
Регистрация: 12.11.2010
Сообщений: 8
По умолчанию

Dim есть, выше:

Цитата:
Option Compare Database
Dim dbs As DAO.Database
Public strSearch, strSQL, psp, pro, rname As String
Public i, j, k, l, m, n As Integer
Dim r1, r2, r3, r4, r5, r6 As Variant
Option Explicit
pla вне форума Ответить с цитированием
Старый 13.10.2011, 14:30   #4
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Тогда попробуйте переписать немного код и dim & set поставить после выполнения обработки данных ексель. А вообще самый лучший вариант просто макрос запускать в самом екселе, тогда точно будет работать и легче всего проверить где ошибка.
gluk_fm вне форума Ответить с цитированием
Старый 13.10.2011, 14:36   #5
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

http://www.tek-tips.com/viewthread.c...1212509&page=1
gluk_fm вне форума Ответить с цитированием
Старый 14.10.2011, 13:17   #6
pla
 
Регистрация: 12.11.2010
Сообщений: 8
По умолчанию

Спасибо за ответы, но перевод 91 ош. - Ссылка на объект или блок оператора With не установлен, мне кажется, что здесь нужно описать добавление строки через Range, пробовала objWS.Range(objWS.Cells(intRow, 1), objWS.Cells(intRow, 256)).Select, тоже не нравится.
pla вне форума Ответить с цитированием
Старый 14.10.2011, 13:49   #7
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Как вариант напишите сам макрос в екселе и будет Вам счастье....
gluk_fm вне форума Ответить с цитированием
Старый 18.10.2011, 15:42   #8
pla
 
Регистрация: 12.11.2010
Сообщений: 8
По умолчанию

Кому интересно, заменила строку с Select на
objWS.Range(objWS.Cells(intRow, 1), objWS.Cells(intRow, 256)).Select
и све отлично работает
pla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка - Run-time error '91' Object variable or With block variable not set Артур Иваныч Microsoft Office Excel 13 12.09.2012 14:18
For loop control variable must be simple local variable Hehe Общие вопросы Delphi 11 26.12.2011 19:42
for loop control variable must be simple local variable obsession Общие вопросы Delphi 10 08.05.2011 12:20
run-time error 91 (object variable or with block variable not set) mrs.petrushina Microsoft Office Access 5 19.04.2011 12:59
run-time error 91 (object variable or with block variable not set) mrs.petrushina Microsoft Office Excel 7 05.04.2011 00:22