Diciamo che quando poni la domanda "Chiudere senza salvare?" serve capire cosa vuoi fare se rispondi NO...!
Diciamo che se rispondi si è chiarissimo...!
L'azione sarà l'annullamento delle modifiche e l'uscita.
Se invece selezioni NO che fai... salvi e chiudi oppure NON SALVI E NON CHIUDI...? direi che non puoi lasciare dubbi e come vedi io per primo ne avrei...!
Ipotizzo che NON VUOI CHIUDERE, di conseguenza NON VUOI SALVARE.
Se la mia interpretazione fosse corretta devi aggiungere un elemento per INIBIRE la chiusura.
Ti proporrei un ragionamento simile:
Option Compare Database
Option Explicit
Private blCancelClose As Boolean
Private Sub Form_Load()
blCancelClose = False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim Risposta As VBA.VbMsgBoxResult
If Me.txtor = 0 And Me.txtab = 0 Then
Risposta = MsgBox("Inserire almeno un valore nei campi progettuali. Chiudere senza salvare?", vbYesNo)
Cancel = True
If Risposta = vbNo Then
Me.Undo
blCancelClose = True
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cancel = blCancelClose
blCancelClose = False
End Sub
Fai attenzione sia ad INDENTARE il codice per renderlo comprensibile, che alle piccole modifiche tecniche che ti ho apportato.