из Access'а в Word. Ошибка -2147023174

Программирование на Visual Basic for Applications
dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

из Access'а в Word. Ошибка -2147023174

Сообщение dormouse » 06.05.2009 (Ср) 8:21

нужна процедура по формированию вордовского документа из акцесса. Что уже есть...
в Акцессе(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 недоступен". Чаще всего это происходит, если сразу после правильной полной отработки процедуры пользователь попытается создать ещё один документ, не закрывая форму. Такое впечатление, что какие-то из объектов живут до закрытия формы. Но никаких переменных за пределеами процедуры вообще не используется. Форму можно закрыть и заставить пользователя открывать её снова.. Но теоретически интересует, в чём ошибка.
VBA, MSA97

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Re: из Access'а в Word. Ошибка -2147023174

Сообщение Andrev » 06.05.2009 (Ср) 20:56

У яндекса спросить лениво? Вот ответ: http://support.microsoft.com/kb/189618
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Re: из Access'а в Word. Ошибка -2147023174

Сообщение dormouse » 07.05.2009 (Чт) 7:19

спасибо, что не поленились :)
VBA, MSA97

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: из Access'а в Word. Ошибка -2147023174

Сообщение SUPchik » 11.05.2009 (Пн) 17:13

Не совсем по теме,извиняйте.
Есть шесть переменных(osn,dr,zam,kp,kpdr,ekz),значения(целые числа) им присваиваются из определенного поля Accessовской таблицы.
В Wordовском документе есть таблица,в одну ячейку которой записываются значения этих переменных.
Как сделать так,чтобы в эту ячейку записывались только те переменные,значение которых не равны нулю?
пробовал сделать так,но не совсем удачно:
Код: Выделить всё
If osn = 0 Then .Cell(1, 35).Range.Text = dr & zam & kp & kpdr & ekz
If dr = 0 Then .Cell(1, 35).Range.Text = osn & zam & kp & kpdr & ekz
If zam = 0 Then .Cell(1, 35).Range.Text = osn & dr & kp & kpdr & ekz
If kp = 0 Then .Cell(1, 35).Range.Text = osn & dr & zam & kpdr & ekz
If kpdr = 0 Then .Cell(1, 35).Range.Text = osn & dr & zam & kp & ekz
If ekz = 0 Then .Cell(1, 35).Range.Text = osn & dr & zam & kp & kpdr
Нет ни одной надёжной системы безопасности!!!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: из Access'а в Word. Ошибка -2147023174

Сообщение iGrok » 11.05.2009 (Пн) 18:12

SUPchik писал(а):Есть шесть переменных(osn,dr,zam,kp,kpdr,ekz),значения(целые числа) им присваиваются из определенного поля Accessовской таблицы.
В Wordовском документе есть таблица,в одну ячейку которой записываются значения этих переменных.

Это что получается, они все шесть пишутся в одну строчку без разделителей, и никому не важен их порядок и наличие?

З.Ы. А так, конечно, да. Лучше бы новую тему создал..
label:
cli
jmp label

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: из Access'а в Word. Ошибка -2147023174

Сообщение SUPchik » 11.05.2009 (Пн) 22:17

iGrok писал(а):Это что получается, они все шесть пишутся в одну строчку без разделителей, и никому не важен их порядок и наличие?

с разделителями,это я для простоты написал.

Понимаю должна получиться длинная портянка из If Then Else???
Нет ни одной надёжной системы безопасности!!!

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: из Access'а в Word. Ошибка -2147023174

Сообщение Alec » 11.05.2009 (Пн) 22:31

SUPchik писал(а):Понимаю должна получиться длинная портянка из If Then Else???

А кто мешает проверку на 0 делать в функции?
Иногда лучше вовремя остановиться...
И начать заново!

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: из Access'а в Word. Ошибка -2147023174

Сообщение SUPchik » 11.05.2009 (Пн) 22:35

Alec писал(а):А кто мешает проверку на 0 делать в функции?

вот поэтому и получается портянка :?
Нет ни одной надёжной системы безопасности!!!

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: из Access'а в Word. Ошибка -2147023174

Сообщение Alec » 11.05.2009 (Пн) 22:59

SUPchik писал(а):Понимаю должна получиться длинная портянка из If Then Else???

SUPchik писал(а):вот поэтому и получается портянка


Код: Выделить всё
Function Is0(N As Integer) As String
  If N = 0 Then Is0 = "" Else Is0 = N
End Function

'-------------
  .Cell(1, 35).Range.Text = Is0(osn) & Is0(dr) & Is0(zam) & Is0(kp) & Is0(kpdr) & Is0(ekz)

здесь всего ОДНА конструкция If Then Else
Иногда лучше вовремя остановиться...
И начать заново!

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: из Access'а в Word. Ошибка -2147023174

Сообщение SUPchik » 11.05.2009 (Пн) 23:20

Alec,спасибо огромное!!! :D
Нет ни одной надёжной системы безопасности!!!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList  
cron