|
|
|
| Доброго времени суток, господа. Есть небольшая проблема. Необходимо вывести отчет в Word. Пользуясь рекомендациями вашего сайта, выполнил задачу. Но когда поставил клиенту на комп начала выскакивать ошибка "Object varieble or With block varieble not set". Дебагером посмотрел - выскакивает в момент обращения к объекту ворда. На домашней машине все работает нормально. На клиентской машине офис проинстален в полной установке, все необходимые библиотеки подключены. Бьюсь над траблом более недели, может хто-то что-то подскажет. Заранее благодарен | |
|
| |
|
|
|
| версии офисов одинаковые?
какие конкретно библиотеки используются Microsoft Word 10.0, 11.0
а вообще лучше использовать "позднее связывание" - поищите на этом сайте, писали уже | |
|
| |
|
|
|
| Используются офисы одинаковые, библиотека Microsoft Word 11.0 | |
|
| |
|
|
|
| "Object varieble or With block varieble not set" - говорит о том что происходит по пытка использовать объектную переменную у которой нет сслыки объект.
условно говоря пееменная есть, а значение ей не присвоено.
Покажите весь код от начала процедуры до той строки где ругается. | |
|
| |
|
|
|
| Использую позднее связывание.
Option Compare Database
Option Explicit
Public obWord As Object 'сам Word - Application
Public obWindow As Object 'окно документа
Public NomDoc As Long 'номер документа для печати
Public Sub prn_rec()
On Error GoTo Err_prn_rec
Dim faza As String, dizain As String, sponsor As String
Dim fl_zp As Boolean
Dim prom_c As Integer
NomDoc = 0
'Открытие шаблона
'Включаем песочные часы
HourYes "Старт Word"
'Читаем шаблон
Forms!Vvod_dosl.Controls!rec_v_m_sub!Shablon = DLookup("Shablon", "Shablons", "ID = " & 0)
'Запускаем Word с шаблоном
Forms!Vvod_dosl.Controls!rec_v_m_sub!Shablon.Action = acOLEActivate
'Установливаем связь с Word
Set obWord = GetObject(, "Word.Application")
'Запоминаем ссылку на окно с документом
Set obWindow = obWord.ActiveDocument.ActiveWindow
'Максимизируем окно документа
obWindow.WindowState = 1
Затыкается на Set obWindow = obWord.ActiveDocument.ActiveWindow, в дебагере в obWord и obWindow показывает значение Empty, хотя на домашнем комьютере все нормально | |
|
| |
|
|
|
| Ну судя по всему не удается получить Word.Application, возможно криво установился
попробуйте заменить
Set obWord = GetObject(, "Word.Application")
|
на
Set obWord = CreateObject("Word.Application")
|
если не поможет сделайте следующее, создайте файл с расширением VBS (например Word.vbs)
в нем напишите :
Dim objWD
Set objWD = WScript.CreateObject("Word.Application")
objWD.Visible = TRUE
|
запустите этот файл.
Что получилось? | |
|
| |
|
|
|
| Похоже что ув. Bellerofont ближе к истине.
дело может быть и в том что не удается найти поле с OLE
Во всяком случае заменять Get... на Create... как я предложил, не стоит
но проверку с VBS сделайте | |
|
| |
|
|
|
| Какой тип контрола Shablon? BoundObjectFrame?
почему вы так странно ссылаетесь на контрол подчиненной формы (не используете Form)?
Т.е. не так
Forms!Vvod_dosl!rec_v_m_sub.Form!Shablon
Почему вы не используете свойство Object контрола Shablon для для получения объекта Document и др.? Например:
Set obWord = Forms!Vvod_dosl!rec_v_m_sub.Form!Shablon.Object.Application | |
|
| |
|
|
|
| Здравствуйте, господа. Извините, в пятницу отписаться не получилось, а дома нет не работает. Обо всем по порядку. Shablon - пустое невидимое поле в форме.При замене
Set obWord = GetObject(, "Word.Application") на Set obWord = CreateObject("Word.Application")
выскакивает ошибка "Данная команда недоступна, так как не открыт ни один документ", хотя после строки
Forms!Vvod_dosl.Controls!rec_v_m_sub!Shablon.Action = acOLEActivate
запускается экземпляр Word с шаблоном необходимого документа. При старом варианте кода, на домашнем компе в дебагере после
Set obWord = GetObject(, "Word.Application")
obWord присваивается значение "Microsoft Word" и переменная obWindow принимает значение "Документ в Інформація про дослідження"(название шаблона). На машине клиента в этих 2-х переменных почему то сохраняется значение Nothing. | |
|
| |
|
|
|
| что-то по порядку у вас не получилось...
Ни на один мой вопрос вы не дали ответа, а если и дали, то некорректно.
Например, вы ответили "Shablon - пустое невидимое поле в форме", но это не ответ.
Такого контрола для формы не существует ... | |
|
| |
|
|
|
| Я Ваш ответ только сегодня прочитал, сегодня попробую, завтрв отпишусь | |
|
| |
|
|
|
| Огромное спасибо Bellerofont , поступил согласно Ваших рекомендаций, все заработало. Тема закрыта. | |
|
| |