Newsgroup: it.comp.appl.access
Titolo: Errore con campo data

Buongiorno a tutti, mi permetto di ripostare un veccchio messaggio che
ho trovato molto utile per risolvere i problemi relativi
all'inserimento delle date
Ho trovato il modo di intercettare questo errore.
Il campo in questione è un campo data con Maschera di input settata a
99/99/00.
Lo posto perchè cercando nei vechi post in google non ho trovato la
soluzione.
SunRex
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 2279 Then
        MsgBox "La data deve essere nel formato gg/mm/aa"
        Response = acDataErrContinue
        Exit Sub
End If
End Sub
Vorrei però fare una piccola precisazione, questa funzione va a
meraviglia se uno inserisce una data incompleta (es: 1201) ma se
inserisco un valore composto da 6 cifre, l'errore non viene
intercettato e access mi da una maschera di errore per: "dati non
corrispondenti". E' possibile intercettare anceh questo tipo di errore
?
Grazie a tutti.
Saluti,
           JonnyCastoro

[CUT]
Ciao,
nella parte inferiore dello schema della tabella oltre alla maschera di 
input c'è messaggio d'errore: perchè non lo scrivi in codesto posto?

Gaspare ha scritto:

Chiedo scusa per l'imprecisione. L'errore è:
E' stato immesso un valore non valido per il campo.
E' possibile, ad esempio, che sia stato immesso del testo in un campo
Numerico o un numero maggiore di quello consentitoper l'impostazione
FieldSize
Io ottengo questo errore se inserisco, per es: 333333
Nuovamente grazie,
                                saluti.
JonnyCastoro

[CUT]
If DataErr = 2113 Then
MsgBox "occhio vigile alla data"
Response = acDataErrContinue
End If

Buongiono Gaspare,
                                ti ringrazio moltissimo per la cortese
risposta, mi permetto di aggiungere un'ultima piccola richiesta. Come
hai fatto ad individuare il codice d'errore ?
Io ho provato ad inserire nell'evento "su errore" dell maschera la
seguente stringa
msgbox err.number
ma mi restituiva un valore "0"...
...ho sbagliato qualcosa ?
Grazie ancora.
JonnyCastoro

 ha scritto nel messaggio 
news:1169301257....@11g2000cwr.googlegroups.com...

[Risposta]
Ciao,
basta scrivere Msgbox DataErr all'interno di Form_Error ed essendo questo 1 
dei 2 parametri assieme a Response lo puoi visualizzare solo x l'appunto 
quando si manifesta l'errore: se infatti scrivi solamente
MsgBox   DateErr
vedrai che ti visualizzerà il numero di errore e poi il messaggio standard 
di access ;-)
Buon lavoro :-)

[CUT]
Ciao,
prova anche a dare 1 occhiata qui 
http://support.microsoft.com/kb/120567/it
 

Grazie Gaspare,
                           ti ringrazio per il prezioso aiuto,
l'applicazione funziona a meraviglia.
Ti vorrei chiedre ancora un consiglio per rendere un po' più
professionale l'applicazione.
Mi piacerebbe, in caso di errore, cancellare il contenuto del
controllo.
Io ho provato a creare la seguente routine:
Dim name As Control
Set name = Screen.ActiveControl
If DataErr = 2113 Then
        MsgBox "      THIS FIELD MUST BE FILLED WITH A VALID DATA
(DD/MM/YY)", vbritical, "Bianchi: Accounting Program - ERROR"
        Response = acDataErrContinue
        name = Null
        Exit Sub
ma non funziona.... ...mi da un errore di runtime 2115
ma la cosa bella è che se al posto di: DataErr = 2113     metto
DataErr = 2279       funziona tutto !!!!!
Non capisco se è un bug o se mi sfugge qualcosa....
Ciao,
         JonnyCastoro

 ha scritto nel messaggio 
news:1169306967.7...@q2g2000cwa.googlegroups.com...




Dim name As Control
Set name = Screen.ActiveControl


        Response = acDataErrContinue
        name = Null
        Exit Sub



Ciao,
         JonnyCastoro
[Risposta]
Ciao,
si tratta di errori diversi causati da diverse condizioni:
l'errore 2279 
http://support.microsoft.com/kb/120567/it
  è l'errore che si 
manifesta quando non rispetti le condizioni specificate nella maschera di 
input mentre
l'errore 2113 è quello di cui scrivi tu "E' stato immesso un valore non 
valido per il campo. E' possibile, ad esempio, che sia stato immesso del 
testo in un campo Numerico o un numero maggiore di quello consentito per 
l'impostazione FieldSize". Ne deduco che x quel campo tu hai impostato delle 
condizioni nella maschera di input ed infatti l'errore viene intercettato 
mentre non si verifica l'altro errore 2113 e quindi access s'incazza 
dicendoti "non posso aggiornare il record in quanto stai violando delle 
condizioni...o ti gestisci tu l'errore o te ne visualizzo uno io e non 
scendo a compromessi" ;-)