в Акцессе(97) форма, на которой кнопка со следующим кодом:
- Код: Выделить всё
retry:
If GetRunnigProc("winword.exe") = True Then
If MsgBox("Закройте Word и нажмите кнопку Повтор", vbRetryCancel) = vbCancel Then
Exit Sub
Else
GoTo retry
End If
End If
Dim W As Word.Application, D As Word.Document
Set W = CreateObject("Word.Application")
Set D = W.Documents.Add
W.Visible = True
W.WindowState = wdWindowStateMinimize
W.Documents(D.Name).Activate
With W.Selection
'здесь много кода по формированию документа
End With
W.Visible = True
W.Activate
W.WindowState = wdWindowStateMaximize
Set D = Nothing
Set W = Nothing
это часть кода, которая касается непосредственно формирования документа. часть данных берётся из той же формы, часть из базы.. Это не важно
Проблема в том, что иногда при первом обращении к объектам D (Document) или W (Word) выдаётся ошибка -2147023174 "Ошибка программирования объектов. Сервер RPC недоступен". Чаще всего это происходит, если сразу после правильной полной отработки процедуры пользователь попытается создать ещё один документ, не закрывая форму. Такое впечатление, что какие-то из объектов живут до закрытия формы. Но никаких переменных за пределеами процедуры вообще не используется. Форму можно закрыть и заставить пользователя открывать её снова.. Но теоретически интересует, в чём ошибка.