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.