Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access2003. интеграция с Word
 
 автор: serjvip   (09.04.2008 в 17:39)   личное сообщение
 
 

Доброго времени суток, господа. Есть небольшая проблема. Необходимо вывести отчет в Word. Пользуясь рекомендациями вашего сайта, выполнил задачу. Но когда поставил клиенту на комп начала выскакивать ошибка "Object varieble or With block varieble not set". Дебагером посмотрел - выскакивает в момент обращения к объекту ворда. На домашней машине все работает нормально. На клиентской машине офис проинстален в полной установке, все необходимые библиотеки подключены. Бьюсь над траблом более недели, может хто-то что-то подскажет. Заранее благодарен

  Ответить  
 
 автор: ДрЮня   (09.04.2008 в 18:17)   личное сообщение
 
 

версии офисов одинаковые?
какие конкретно библиотеки используются Microsoft Word 10.0, 11.0
а вообще лучше использовать "позднее связывание" - поищите на этом сайте, писали уже

  Ответить  
 
 автор: serjvip   (09.04.2008 в 18:29)   личное сообщение
 
 

Используются офисы одинаковые, библиотека Microsoft Word 11.0

  Ответить  
 
 автор: osmor   (10.04.2008 в 08:53)   личное сообщение
 
 

"Object varieble or With block varieble not set" - говорит о том что происходит по пытка использовать объектную переменную у которой нет сслыки объект.
условно говоря пееменная есть, а значение ей не присвоено.
Покажите весь код от начала процедуры до той строки где ругается.

  Ответить  
 
 автор: serjvip   (10.04.2008 в 10:07)   личное сообщение
 
 

Использую позднее связывание.

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, хотя на домашнем комьютере все нормально

  Ответить  
 
 автор: osmor   (10.04.2008 в 10:59)   личное сообщение
 
 

Ну судя по всему не удается получить 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

запустите этот файл.
Что получилось?

  Ответить  
 
 автор: osmor   (10.04.2008 в 11:43)   личное сообщение
 
 

Похоже что ув. Bellerofont ближе к истине.
дело может быть и в том что не удается найти поле с OLE
Во всяком случае заменять Get... на Create... как я предложил, не стоит
но проверку с VBS сделайте

  Ответить  
 
 автор: Bellerofont   (10.04.2008 в 11:06)   личное сообщение
 
 

Какой тип контрола 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

  Ответить  
 
 автор: serjvip   (14.04.2008 в 10:33)   личное сообщение
 
 

Здравствуйте, господа. Извините, в пятницу отписаться не получилось, а дома нет не работает. Обо всем по порядку. 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.

  Ответить  
 
 автор: Bellerofont   (14.04.2008 в 15:05)   личное сообщение
 
 

что-то по порядку у вас не получилось...
Ни на один мой вопрос вы не дали ответа, а если и дали, то некорректно.
Например, вы ответили "Shablon - пустое невидимое поле в форме", но это не ответ.
Такого контрола для формы не существует ...

  Ответить  
 
 автор: serjvip   (14.04.2008 в 15:21)   личное сообщение
 
 

Я Ваш ответ только сегодня прочитал, сегодня попробую, завтрв отпишусь

  Ответить  
 
 автор: serjvip   (21.04.2008 в 10:25)   личное сообщение
 
 

Огромное спасибо Bellerofont , поступил согласно Ваших рекомендаций, все заработало. Тема закрыта.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList