Newsgroup: it.comp.appl.access
Titolo: ancora messaggi!!

Ciao ragazzi, ancora una volta mi trovo alle prese con la necessità di 
modificare i messaggi spartani e incomprensibili (a livello utente) dei 
messaggi di access.
il problema è il seguente, in un campo, attraverso la proprietà mashera 
di imput ho costretto l'utente ad inserire un valore che non fosse nè 
superiore nè inferiore a 10 caratteri, se l'utente per sbaglio inserisce 
   un numero di caratteri inferiore a quello necessario access mi fa 
apparire una finestra di informazione che dice che non si è rispettato 
il valore della maschera di imput ecc ecc. (messaggio per me 
comprensibile), ma per un utente poco chiaro!
Vorrei sostituire quel messaggio con uno più chiaro per l'utente come 
faccio?

 ha scritto nel messaggio
news:1q1td.468662$35.20...@news4.tin.it...

al verificarsi della condizione invece che attivare msgbox, poui lanciare
una maschera personalizzata da te. Una maschera non associata ai dati ma con
tutti i pulsanti e le caselle di testo che vuoi.
docmd.openform ...
In tal modo puoi gestire tutte le scelte successive al verificarsi
dell'errore: annullamento dell'operazione, salvataggio del dato, passaggio
ad altra maschera ecc...
input box restituisce una stringa :
if stringa minore di dieci allora apri maschera  ... ecc...

ciroteo ha scritto:

mi spiace ma non ben capito a che serva una maschera supplementare 
quando il messaggio access già lo crea di default, io voglio solo 
imtercettare quel messaggio ed invece di far uscire un testo 
incomprensibile metterci quello che voglio (come se intercettassi un 
errore di run time e al posto del classico messaggio metterne uno tutto 
mio!)

 ha scritto nel messaggio
news:5G1td.468749$35.20...@news4.tin.it...

Stessa cosa intercetta l'Errore rilevandone il Numero attraverso la
Gestione di On Error Goto, su errore fai un Msgbox Err.Number
e determini l'Errore, a quel punto inserisci nella Gestione errori
un
Select Case Err.Number
    Case NumeroTrovato
            Msgbox "Non hai inserito un Numero di Caratteri Sufficienti"
            Screen.PreviousControl.SetFocus    'In questo modo ritorna il
                                                                'Focus sulla
TextBox che
                                                                'nel
frattempo si è spostato sul Button
    Case Else
            msgbox "NomeForm [NomeFunction] " & vbcrlf & err.Description &
"(" & err.Number & ")"
End Select
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

ALESSANDRO Baraldi ha scritto:

Non  non ci siamo!
Nella proprietà maschera di imput del campo "meccanografico" ho messo 
"'AAAAAAAAAAAA';" per l'immissione obbligatoria di lettere o numeri per 
un totale di 13 caratteri, se non si rispetta questa impostazione access 
mi INFORMA che non ho rispettato la maschera imput, non mi da alcun 
errore di run time con relativo codice.
Come posso intercettare quel messaggio di access se non vi è alcun 
codice da richiamare!?

 codice da richiamare!?
Sul fatto che non "CI SIAMO" solleverei una precisazione.....!
Ritengo che tu non abbia realizzato una gestione ERRORI, almeno
non corretta.
Quel messaggio che vedi è un ERRORE pertanto intercettabile.
Il problema è che avendolo messo come impostazione nella
tabella l'errore è generato da JET e riconosciuto da Access, pertanto
lo puoi riconoscere anche tu se implementi la gestione errori....!
Io non realizzarei in questo modo la cosa, anche se deve funzionare.
Io verificherei l'evento LostFocus della TextBox e qualora
Len(Me.TueText)<>10 generi il MEssaggio.
Gestire i messaggi di JET non è sempre comodo, pertanto elimina
"'AAAAAAAAAAAA';" dal campo della Tabella e mettilo eventualmente nella
formattazione della Casella di Testo.


 Ciao
Ti ringrazio per la dritta sono riuscito a risolvere il problema del 
messaggio in questa maniera
Dim strMsg As String
If Len(Me.meccanografico) <> 13 Then
strMsg = "Attenzione!" & vbCrLf & "Il codice meccanografico immesso non 
è di 13 cifre"
MsgBox strMsg, vbExclamation, "A T T E N Z I O N E"
Me.meccanografico.SetFocus
End If
solo che dopo aver chiuso il messaggio non riesco a riportare il focus 
su meccanografico (ho provato sia con me.meccanografico.setfocus sia con 
l'istruzione Screen.PreviousControl.SetFocus).
Inoltre se inserisco "AAAAAAAAAAAA;" nella formattazione della textbox 
ritorna l'errore sdtreuso di access
dove sbaglio?

 ha scritto nel messaggio 
news:1q1td.468662$35.20...@news4.tin.it...

Oltre quello che ti ha già detto Alessandro, considera quanto segue:
la maschera di input che hai usato prevede già l'immissione obbligatoria dei 
13 caratteri; per renderla non obbligatoria impostala così: aaaaaaaaaaaaa;;_
Tra le proprietà del controllo esiste "Valido se": qui puoi mettere la tua 
formula per esempio per verificare se ci sono i 13 caratteri: 
Len([TuoControllo])=13
Subito dopo "Valido se" esiste la possibilità di mostrare un messaggio 
personalizzato usando "Messaggio di errore". Qui scriverai il messaggio se 
"Valido se" non è rispettato: "I caratteri inseriti devono essere 13"
Spero di averti dato un ulteriore input.
Ciao, Carlo 

 dove sbaglio?
Continui a non capire la necessità di inserire la GESRIONE ERRORI.
IN particolare questa è a livello di FORM e se sagui quanto detto
funziona.
Vedi sull'utilizzo di 
"On ERROR Goto"
Ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG