mikelemm ha scritto:
Nell'eventualità che venga inserita una lettera invece di un numero, ti verrà restituito un errore di run-time. Fai delle prove e se hai problemi fammi sapere.
Ciao asnaldo, ti avevo avvisato dell'eventualità che potesse comparire un errore. L'errore in questione è il numero 13, se non ricordo male. Non puoi eliminare la comparsa dell'errore ma puoi gestirlo. Per gestirlo in maniera efficace, basta inserire nella routine una gestione degli errori. Riscrivi così la routine:
Private Sub ModificaOrdine_Click()
Dim NOrdine As Integer
Dim Result As Variant
On error goto ModificaErr 'indica l'etichetta che gestisce gli errori all'interno della routine
NOrdine = InputBox("Inserisci il numero della testata da modificare:")
If IsNull(NOrdine) Then ' gestione del caso in cui non si inserisce niente
Exit Sub
End If
Result = DLookup("id_ordine_testata", "TUATABELLA", "id_ordine_testata=" & NOrdine)
If IsNull(Result) Then
MsgBox "Il numero d'ordine inserito è errato!", vbExclamation
Exit Sub
Else
DoCmd.OpenForm "ordine", acNormal, "", "[id_ordine_testata]=" & NOrdine, acEdit, acNormal
End if
ModificaErr:
If Err.number = 0 Then 'errore 0 viene restituito quando va tutto bene e non si deve fare niente
ElseIf Err.number = 13 Then
MsgBox "Inserimento errato!", vbExclamation 'gestione dell'inserimento errato o nullo
Exit Sub ' esce dalla routine
Else
MsgBox "Errore n. " & Err.number & VbCrLf & _ 'segnalazione di altri eventuali errori
Err.Description, vbCritical
Exit Sub
End If
End Sub
Io la gestione degli errori la faccio così. In caso tu inserisca una lettera o lasci vuota l'input box ti uscirà la segnalazione "Inserimento errato!". Per la pressione dell'annulla non ricordo se va bene così.
Prova e se hai problemi fammi sapere. Ciao.