Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CreateObject("Word.Application") и настройки Office XP / 4 сообщений из 4, страница 1 из 1
12.01.2005, 10:03:01
    #32860389
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateObject("Word.Application") и настройки Office XP
Написал 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
12.01.2005, 10:13:42
    #32860414
MLeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateObject("Word.Application") и настройки Office XP
Сам не сталкивался. Но попробуйте запустить word с помощью Shell, а потом подцепить его. И закомментируйте все, кроме его запуска и завершения, включая переменные.
...
Рейтинг: 0 / 0
12.01.2005, 10:23:11
    #32860434
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateObject("Word.Application") и настройки Office XP
По поводу MLeonзапустить word с помощью Shell, а потом подцепить его
можно по-подробнее - никогда с таким не сталкивался, оч интересно.

Но в любом случае, возможности по отладке на машине клиента у меня ограничены - поэтому, конечно, хотеблось бы узнать не сталкивался ли кто с подобным, ну или хотя бы на какие настройки обратить внимание при следующей поездке к клиенту.
...
Рейтинг: 0 / 0
12.01.2005, 13:05:37
    #32860956
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateObject("Word.Application") и настройки Office XP
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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CreateObject("Word.Application") и настройки Office XP / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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