Я поддерживаю связанный с Word проект vb6.Когда мы загружаем текстовый документ с нашего сервера и вносим в него изменения.Затем нажмите Закрыть.
Тогда наступит событие objWord_DocumentBeforeClose
.Если загруженный файл не был загружен обратно на сервер, мы выводим окно с сообщением «да / нет» Do you want to check-in the document?
Если нажать «Да» и еще раз нажать ctrl+w
до завершения процесса регистрации, документ закроется без достижения события mobjWord_DocumentBeforeClose
.
Я добавил некоторый код в событие DocumentBeforeClose, чтобы предотвратить закрытие документа, если процесс регистрации выполняется с использованием переменных документа.
Может кто-нибудь объяснить, почему mobjWord_DocumentBeforeClose
не достигает второго щелчка?
Ниже мой код.
Private Sub mobjWord_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
Dim objDoc As Project.Document
Dim objApp As Project.Application
Dim strProcess As String
Set objApp = New Project.Application
If objApp.Settings.RespondToWordEvents Then
Set objDoc = objApp.GetDocument(Doc)
'Check the document variable to seen if any process is running with the document
If objDoc.IsBusy = False Then
if objDoc.NotCheckedIn
If objDoc.DownloadProperties.WasCheckedOut Then
Select Case MsgBox("Do you want to check-in the document?", vbYesNoCancel + vbQuestion)
Case vbYes
If objApp.CheckInDocument(WordDocument:=Doc) Is Nothing Then
Cancel = True
End If
fDisebleCheckIn = True
Case vbNo
fDisebleCheckIn = True
Case vbCancel
Cancel = True
End Select
End If
Else
//some code
End If
Else
Cancel = True
strProcess = ProcessInProgress(objDoc, objApp)
MsgBox objApp.GetUIString("Unable to close the document " + strProcess + "process is running"), vbOKOnly + vbInformation
End If
End If
ErrorHandler:
objApp.Quit
Set objDoc = Nothing
Set objApp = Nothing
End Sub