Вставка textbox при открытии документа Word без сохранения изменений - VB
Формулировка задачи:
Написал скрипт, который при открытии файлов *.doc(x) - "только чтение", вставляет textbox с данными из Oracle database по средствам OO4O.
После того как textbox объявился в файле, который в режиме "только чтение" и никаких более изменений не производилось,
то при закрытии файла он предлагает сохранить изменения.
Как избежать события "сохранить изменения" при закрытии файла, если производилась только вставка textbox?
Собственно скрипт:
После того как textbox объявился в файле, который в режиме "только чтение" и никаких более изменений не производилось,
то при закрытии файла он предлагает сохранить изменения.
Как избежать события "сохранить изменения" при закрытии файла, если производилась только вставка textbox?
Собственно скрипт:
Решение задачи: «Вставка textbox при открытии документа Word без сохранения изменений»
textual
Листинг программы
<font color="blue">Sub</font> AddColontitul() <font color="blue">Dim</font> oraSession <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">Dim</font> oraDatabase <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">Dim</font> OraDynaset <font color="blue">As</font> OraDynaset <font color="blue">Dim</font> OraFields <font color="blue">As</font> OraFields <font color="blue">Dim</font> FieldRec <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> FieldCnt <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> strPath <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> ldDoc <font color="blue">As</font> Document <font color="blue">Dim</font> strDocNameWithoutExt <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> strDocName1, strDocName2, strDocID <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> strDocName3, strDocName <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> lines() <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> text1 <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> Foot <font color="blue">As</font> HeaderFooter <font color="blue">Dim</font> mytxtbox <font color="blue">As</font> Shape <font color="blue">Set</font> ldDoc = ActiveDocument <font color="#00AA00">'-----------------------Get FileName without extention----------------</font> strDocNameWithoutExt = Left(ldDoc.<font color="blue">Name</font>, InStr(<font color="darkblue"><b>1</b></font>, ldDoc.<font color="blue">Name</font>, <font color="teal">"."</font>) - <font color="darkblue"><b>1</b></font>) MsgBox strDocNameWithoutExt <font color="#00AA00">'------------------------Get only ID from FileName--------------------</font> strDocName1 = InStr(<font color="darkblue"><b>1</b></font>, StrReverse(strDocNameWithoutExt), <font color="teal">"("</font>) strDocName2 = Right(strDocNameWithoutExt, strDocName1 - <font color="darkblue"><b>1</b></font>) strDocID = Trim(Left(strDocName2, InStr(<font color="darkblue"><b>1</b></font>, strDocName2, <font color="teal">"_"</font>) - <font color="darkblue"><b>1</b></font>)) <font color="#00AA00">'----------------------------Get only FileName------------------------</font> strDocName3 = Right(strDocNameWithoutExt, strDocName1 - <font color="darkblue"><b>0</b></font>) strDocName = Trim(Replace(strDocNameWithoutExt, strDocName3, <font color="teal">""</font>)) <font color="#00AA00">'------------------------Oracle Connection parameter------------------</font> <font color="blue">Set</font> oraSession = CreateObject(<font color="teal">"OracleInProcServer.XOraSession"</font>) <font color="blue">Set</font> oraDatabase = oraSession.OpenDatabase(<font color="teal">"landocs2.keramin.int"</font>, <font color="teal">"otchetman/loop"</font>, <font color="darkblue"><b>0</b></font>) <font color="#00AA00">'MsgBox <font color="teal">"Connected to "</font> & oraDatabase.Connect & <font color="teal">"@"</font> & oraDatabase.DatabaseName</font> <font color="#00AA00">'------------------------Check type document--------------------------</font> oraDatabase.Parameters.Add <font color="teal">"var1"</font>, strDocID, <font color="darkblue"><b>1</b></font> <font color="blue">Set</font> OraDynaset = oraDatabase.CreateDynaset(<font color="teal">" SELECT count(ver."</font><font color="teal">"ID"</font><font color="teal">") as Cnt "</font> _ & <font color="teal">"FROM dbo.ldmail mail, DBO.LDERC erc, DBO.ldversion ver "</font> _ & <font color="teal">"WHERE erc."</font><font color="teal">"ID"</font><font color="teal">" = mail."</font><font color="teal">"ERCID"</font><font color="teal">" AND ver."</font><font color="teal">"ID"</font><font color="teal">" = :var1 "</font> _ & <font color="teal">"AND erc."</font><font color="teal">"ID"</font><font color="teal">" = ver."</font><font color="teal">"DocID"</font><font color="teal">" "</font> _ & <font color="teal">"AND mail."</font><font color="teal">"MailStateID"</font><font color="teal">" in (2,4,6) AND mail."</font><font color="teal">"MailTypeID"</font><font color="teal">" = 340468 "</font> _ & <font color="teal">"AND ver."</font><font color="teal">"VerN"</font><font color="teal">" in (select max(ver."</font><font color="teal">"VerN"</font><font color="teal">") FROM dbo.ldmail mail, DBO.LDERC erc, DBO.ldversion ver "</font> _ & <font color="teal">"WHERE erc."</font><font color="teal">"ID"</font><font color="teal">" = mail."</font><font color="teal">"ERCID"</font><font color="teal">" AND ver."</font><font color="teal">"ID"</font><font color="teal">" = :var1 "</font> _ & <font color="teal">"AND erc."</font><font color="teal">"ID"</font><font color="teal">" = ver."</font><font color="teal">"DocID"</font><font color="teal">" "</font> _ & <font color="teal">"AND mail."</font><font color="teal">"MailStateID"</font><font color="teal">" in (2,4,6) AND mail."</font><font color="teal">"MailTypeID"</font><font color="teal">" = 340468) "</font>, <font color="darkblue"><b>0</b></font>&) <font color="blue">Set</font> OraFields = OraDynaset.Fields FieldCnt = OraFields(<font color="teal">"Cnt"</font>).Value <font color="#00AA00">'---------------------Main condition for working macros---------------</font> <font color="blue">If</font> FieldCnt > <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> <font color="#00AA00">'--------------------Execute sql-function-----------------------------</font> <font color="blue">Set</font> OraDynaset = oraDatabase.CreateDynaset(<font color="teal">"select dbo.LDF_LDDOC_TYPE( :var1 ) as vRec from dual"</font>, <font color="darkblue"><b>0</b></font>&) <font color="#00AA00">'----------------------Get returned value-----------------------------</font> <font color="blue">Set</font> OraFields = OraDynaset.Fields FieldRec = OraFields(<font color="teal">"vRec"</font>).Value <font color="#00AA00">'---------------------Reaction by return value------------------------</font> <font color="blue">If</font> FieldRec = <font color="darkblue"><b>1</b></font> <font color="blue">Then</font> Stat = <font color="teal">"Согласовано"</font> <font color="blue">ElseIf</font> FieldRec = <font color="darkblue"><b>2</b></font> <font color="blue">Then</font> Stat = <font color="teal">"Не согласовано"</font> <font color="blue">Else</font> Stat = <font color="teal">"Ошибка!"</font> <font color="blue">End</font> <font color="blue">If</font> lines() = Split(Left(strDocName, <font color="darkblue"><b>100</b></font>) & <font color="teal">" "</font> & Stat, vbCrLf) text1 = Trim(lines(i)) <font color="#00AA00">'-----------------------Create Footer---------------------------------</font> <font color="blue">With</font> ldDoc.Sections(<font color="darkblue"><b>1</b></font>).Footers(wdHeaderFooterPrimary) <font color="blue">With</font> .Range .Text = text1 <font color="blue">With</font> .Font .Color = wdColorBlack .<font color="blue">Name</font> = <font color="teal">"Times New Roman"</font> .Size = <font color="darkblue"><b>9</b></font> <font color="blue">End</font> <font color="blue">With</font> <font color="blue">End</font> <font color="blue">With</font> <font color="blue">End</font> <font color="blue">With</font> <font color="#00AA00">'-----------------------If main condition is False--------------------</font> <font color="blue">Else</font> MsgBox <font color="teal">"По документу нет согласований"</font> <font color="blue">End</font> <font color="blue">If</font> ldDoc.Saved = True <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д