VB6 и word(Как лучше?)

lrad

Есть на форме comboboxВ документе word создаю поле DocVariable и из комбо отправляю данные в это поле
DocWord.Variables.Item("Otvet").Value = Me.Combo1.Text
Все работает прекрасно, пока заполнены все поля.Если заполнить не все поля, то выскакивает в незаполненном поле
Ошибка! Переменная документа не указана.
Как обойти проблему?
14 ответов

lrad

lrad,Application.DisplayAlerts =False


lrad

big-duke,А куда это вставить?


lrad

lrad,туда, куда вы вставляете текст
DocWord.Variables.Item("Otvet").Value = Me.Combo1.Text


lrad

Не получается у меня...выдает
"DisplayAlerts" не является членом "System.Windows.Forms.Application".
Как нужно сделать?привожу часть кода
Friend Class Form1
	Inherits System.Windows.Forms.Form
	Dim WordApp As Microsoft.Office.Interop.Word.Application
	Dim DocWord As Microsoft.Office.Interop.Word.Document
	Dim strText As String
	Dim FileNum As Short
	Dim FName As String
	
	Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
		WordApp = New Microsoft.Office.Interop.Word.Application 'создаём новый экземпляр Word-a
		WordApp.Visible = True 'Делаем его "видимым"
		DocWord = WordApp.Documents.Open(My.Application.Info.DirectoryPath & "\primer.doc")
		DocWord.Activate()
		DocWord.Fields.Update()
 DocWord.Variables.Item("1").Value = Me._DTPicker1_0._Value
 DocWord.Variables.Item("2").Value = Me.Text7(<b>24</b>).Text
 Application.DisplayAlerts = False
		DocWord.Variables.Item("Ot").Value = Me.Combo1.Text
		DocWord.Variables.Item("Dop").Value = Me.Combo2(<b>0</b>).Text
		DocWord.Variables.Item("Proiz").Value = Me.Combo4.Text
		DocWord.Variables.Item("Nab).Value = Me.Combo5.Text
		DocWord.Variables.Item("nomer").Value = Me.Text7(<b>23</b>).Text
		DocWord.Fields.Update()
	End Sub


lrad

lrad,WordApp.DisplayAlerts=False


lrad

WordApp.Visible = True 'Делаем его "видимым"
WordApp.DisplayAlerts = False
...


lrad

WordApp.Visible = True 'Делаем его "видимым"
WordApp.DisplayAlerts = False
...
Все равно выскакивает ошибка - Ошибка! Переменная документа не указана.Может надо как то сделать, чтобы по умолчанию как то вставлялся пробел?(если не заполнены данные)


lrad

lrad,т.е. вы заполняете поля программно, так ? И Me.Combo1.Text у вас пустое ? МОжет вам тогда добавить проверку на пустое значение и принудительно вставлять пробел ?


lrad

big-duke,В принципе я так и хочуА как должна выглядеть конструкция проверки?что то типа этого?
if Me.Combo1.Text = <b>0</b>
Then Me.Combo1.Text = ""


lrad

Написал
DocWord.Variables.Item("2").Value = Me.Text7(<b>24</b>).Text
 If Me.Text7(<b>24</b>).Text = "" Then
 Me.Text7(<b>24</b>).Text = " "
Не работает..Как правильно проверить пустое значение?
DocWord.Variables.Item("2").Value = Me.Text7(<b>24</b>).Text
 If Me.Text7(<b>24</b>).Text = <b>0</b> Then
 Me.Text7(<b>24</b>).Text = " "
тоже не идет...


lrad

If Me.Text7(<b>24</b>).Text = "" Then
 Me.Text7(<b>24</b>).Text = " "
 Else : DocWord.Variables.Item("2").Value = Me.Text7(<b>24</b>).Text
 End If
Работает со второго раза(при нажатии на кнопку, открывается ворд, выскакивает ошибка. Закрываю ворд, повторяю - все нормально....)


lrad

Разобрался сам....Подскажите правильно хоть? или так не делают?
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
 If Me.Text7(<b>24</b>).Text = "" Then
 Me.Text7(<b>24</b>).Text = " "
 End If
 WordApp = New Microsoft.Office.Interop.Word.Application 'создаём новый экземпляр Word-a
 WordApp.Visible = True 'Делаем его "видимым"
 WordApp.DisplayAlerts = False
		DocWord = WordApp.Documents.Open(My.Application.Info.DirectoryPath & "\primer.doc")
		DocWord.Activate()
		DocWord.Fields.Update()
 DocWord.Variables.Item("2").Value = Me.Text7(<b>24</b>).Text
Тоесть после нажатия кнопки, проверяю значение на пустое, если пустое ставлю пробела потом ТОЛЬКО играю с вордом


lrad

Разве это VB6?


lrad

Разве это VB6?
Начал с него, а закончил VB.net)))так получилось...