powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CreateObject("Word.Application") и настройки Office XP
4 сообщений из 4, страница 1 из 1
CreateObject("Word.Application") и настройки Office XP
    #32860389
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал Visual Basic-овскую процедуру для перекачки данных из Access в Word через слияние (формирует

стандартные наклейки на конверты).
Столкнулся с проблемой при попытке перейти с Office2k на Office XP - перестало работать! (Собственно

Office XP был установлен у заказчика, а базу я у себя создавал на Office2k, такая подлянка вышла...)

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

команда

Set Word = CreateObject("Word.Application")
т.е. никаких ошибок не возникает, но экземпляр Word-а не создается.
Предположил что это как-то связано с настройками безопасности - запуска к макросов в документах и т.д.

Наобум покрутил их в Word-е, все везде разрешил - все равно не заработало.

Далее установил Office XP у себя запустил ту же прогу и... ВСЕ ЗАРАБОТАЛО!!!

Поскольку возможности в тупую сравнить все возможные настройки Offic-а у себя и заказчика (а тем более

переустановить у него Office XP ;-) ) я не имею - не знаю что делать. :-(

Может кто сталкивался с подобным и знает в чем дело?
Или хотя бы кто подскажет какие именно настройки в данном вопросе критичны и как их надо настроить?

Код этого макроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Public Function export_func(TableName As String)
    Dim Word As Object, Docs As Object, Doc As Object
    On Error Resume Next
    On Error GoTo  0 
    Set Word = CreateObject("Word.Application")
    Set Docs = Word.Documents
    Set Doc = Docs.Open(CurrentProject.Path & "\templates\POST-TEMPLATE.doc", , True)
    Word.Visible = False
    count_befor_new = Docs.Count
    
    Dim query_for_post, str_Name, str_Connection, str_SQLStatement As String
    query_for_post = TableName '"system_post2"
    str_Name = CurrentProject.Path & "\conference2.mdb"
    str_Connection = "TABLE " & query_for_post
    str_SQLStatement = "SELECT * FROM [" & query_for_post & "]"
    
    Doc.MailMerge.OpenDataSource Name:=str_Name, _
        Connection:=str_Connection, SQLStatement:=str_SQLStatement, SQLStatement1:=""
   
    With Doc.MailMerge
        .Destination = wdSendToNewDocument
        .MailAsAttachment = False
        .MailAddressFieldName = ""
        .MailSubject = ""
        .SuppressBlankLines = False
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=True
    End With
    Doc.Close (False)
   
    Word.Visible = True
    Docs.Item(count_befor_new).Activate
End Function
...
Рейтинг: 0 / 0
CreateObject("Word.Application") и настройки Office XP
    #32860414
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам не сталкивался. Но попробуйте запустить word с помощью Shell, а потом подцепить его. И закомментируйте все, кроме его запуска и завершения, включая переменные.
...
Рейтинг: 0 / 0
CreateObject("Word.Application") и настройки Office XP
    #32860434
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу MLeonзапустить word с помощью Shell, а потом подцепить его
можно по-подробнее - никогда с таким не сталкивался, оч интересно.

Но в любом случае, возможности по отладке на машине клиента у меня ограничены - поэтому, конечно, хотеблось бы узнать не сталкивался ли кто с подобным, ну или хотя бы на какие настройки обратить внимание при следующей поездке к клиенту.
...
Рейтинг: 0 / 0
CreateObject("Word.Application") и настройки Office XP
    #32860956
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey137 wrote:
> Написал Visual Basic-овскую процедуру для перекачки данных из Access в
> Word через слияние (формирует
>
> стандартные наклейки на конверты).
> Столкнулся с проблемой при попытке перейти с Office2k на Office XP -
> перестало работать! (Собственно
>
> Office XP был установлен у заказчика, а базу я у себя создавал на
> Office2k, такая подлянка вышла...)
>
> При первичной попытке разобраться в чем дело, прямо на машине у
> заказчика, обнаружил что не выполняется
>
> команда
>
> Set Word = CreateObject("Word.Application")


Непосредственно приложение (exe-файл)соответствующий "Word.Application"
ищется по реестру Windows. Возможно, на конкретной машине имеются
проблемы с реестром.

> т.е. никаких ошибок не возникает, но экземпляр Word-а не создается.

Необходимо убрать или закомментировать в начале скрипта строки
"On Error Resume Next" и "On Error GoTo *0*",
что бы видеть код ошибки при создании объекта Word.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CreateObject("Word.Application") и настройки Office XP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]