Подскажите, как правильно выгрузить форму, чтобы VB6 не матерился?
Имеем первичную MDI-форму.
Из меню вызываю форму печати приходно-кассового ордера (frmPKO).
- Код: Выделить всё
Private Sub mnuPKOrderItem_Click() 'заполнение и печать приходного кассового ордера
frmPKO.Show vbModal
End Sub
Так же из меню (пока) вызываю форму печати справки в ИФНС.
- Код: Выделить всё
Private Sub mnuIFNSItem_Click()'заполнение и печать справки в ИФНС
frmIFNS.Show vbModal
End Sub
По отдельности все работает.
Для удобства хочу по окончании печати ПКО из этой же формы вызвать печать справки в ИФНС.
- Код: Выделить всё
If MsgBox("Печатаем справку в ИФНС?", vbYesNo + vbQuestion, "Печать справки") = vbYes Then
frmIFNS.Show vbModal
End If
И здесь начинается мозгоклюйство:
- Код: Выделить всё
Dim rsIFNS As ADODB.Recordset
'заполняем поле "Сумма платежа"
Set rsIFNS = New ADODB.Recordset
sSQL = "SELECT * FROM PKO WHERE nKart = '" & numKart & "'"
rsIFNS.Open sSQL, cnDB, adOpenStatic, adLockReadOnly
If rsIFNS.recordCount = 0 Then 'необходимо сначала выписать ПКО
MsgBox "Для " & txtFIOnp.Text & vbNewLine & "не выписан кассовый ордер!", vbCritical, "Не выписан ПКО"
'варианты************
cmdExit_Click
'Set rsIFNS = Nothing
'Unload Me
'Exit Sub
'варианты************
End If
rsIFNS.Close
Private Sub cmdExit_Click()
Set rsIFNS = Nothing: Unload Me
End Sub
Если я выхожу через cmdExit_Click(), или нахально из процедуры выгружаю форму, то выдается ошибка 364 - объект уже выгружен.
'вариант 1:
- Код: Выделить всё
cmdExit_Click
'Set rsIFNS = Nothing
'Unload Me
'вариант 2:
- Код: Выделить всё
'cmdExit_Click
Set rsIFNS = Nothing
Unload Me
Если выхожу через (вариант 3)
- Код: Выделить всё
'cmdExit_Click
'Set rsIFNS = Nothing
'Unload Me
Exit Sub
то остаются выведенные формы, и каждую нужно закрывать отдельно. Теряется смысл "удобства".
Вот как-то так. Можно, конечно, тупо через меню вызывать каждую форму, и отдельно каждую закрывать. Но - ПКО и справка взаимосвязаны, хотелось бы и для юзера их логически связать.
Подскажет кто что? Отдельно просьба к Хакеру - пожалйста, не отправляй меня в Поиск. Я там уже был.