Newsgroup: it.comp.appl.access
Titolo: convalida campi tipo form internet

Ho la mia solita maschera associata che inserisce i dati in una tabella 
attraverso un recorset dao.
Vorrei che l'utente mi inserisse i dati in tutti i campi e vorrei 
interrompere l'inserimento del dato nel caso in cui tutti i controlli 
obbligatori non siano stati completati.
Chiaramente ho provato a mettere nella tabella l'obbligo di inserimento, ma 
vorrei creare una cosa un po' più
 efficace nel senso che vorrei indicare all'utente quale controllo non è 
stato correttamente compilato.
Visto che l'esecuzione dell'inserimento avviene dopo il click di un pulsante 
avrei messo la seguente procedura:
If Me.redattore = "indicare il responsabile del procedimento" Then
        Beep
        MsgBox "Attenzione occorre indicare" & Chr(10) & "il Responsabile 
del procedimento", vbOKOnly, "Avviso errore di compilazione"
    End If
DoCmd.GoToControl "redattore"
If Me.mittente = "Seleziona dall'elenco" Or IsNull(Me.mittente) Then
        Beep
        MsgBox "Attenzione occorre indicare" & Chr(10) & "il destinatario 
del documento", vbOKOnly, "Avviso errore di compilazione"
    DoCmd.GoToControl "mittente"
    Else
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("protocollouscita")
....
Secondo voi devo aprire un if / end if per ogni controllo o esiste un modo 
per semplificare il codice?

 wrote in message
news:d3okhg$jli$
1...@hulme.interac.it

Io metto un Carattere di riconoscimento nella proprietà TAG
dei controlli da Testare ad esempio "OBBLIGATORIO", quindi
su evento CLICK di un CommandButton eseguo il Check:
Private Sub Check()
   Dim ctl As Access.Control
   For Each ctl In Me.Controls
          If ctl.TAG = "OBBLIGATORIO" Then
               With ctl
                     If .Visible And _
                        (.ControlType = acTextBox) Then
                           .BackColor = vbWhite
                           If IsNull(.Value) Or .Value = "" Then
                                 .BackColor = vbRed
                                 MsgBoxEx UCase(ctl.Controls(0).Caption)
& vbCrLf & _
                                          "@Inserire i dati mancanti nel
Campo@", vbExclamation, "AVVISO"
                                 .SetFocus
                                 Set ctl = Nothing
                                 Exit Sub
                           End If
                     End If
               End With
         End If
   Next
   MsgBoxEx "VERIFICA" & vbCrLf & _
            "@Tutti i dati sono stati inseriti@", vbInformation,
"AVVISO"
   End Sub
Questa Funzione è un pò articolata, ma utilissima in quanto Evidenzia
in rosso il controllo che non è compilato avvisando l'Utente.
Se può esserti utile....!
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio 
news:9f0f91dd164511f906...@mygate.mailgate.org...

eccome!

 ha scritto nel messaggio
news:d3okhg$jli$1...@hulme.interac.it...

Ciao Ciroteo,
non so se tu puo essere d'aiuto, prova scaricare questo esempio dal sito
comune 6.156 Calcolare una data/ora finali partendo da una data/ora iniziali
e basandosi su una durata in minuti
Avevo semplicemente ciclato i controlli dalla form evidenziando in rosso
quelli non compilati (maschera1)
E' un po' da adattare alla tua situazione, ma non troppo credo.
(Avevo preso spunto dal Mail Sender di @Alex)
Ciao

 ha scritto nel messaggio
news:9f0f91dd164511f906...@mygate.mailgate.org...

Ma che cavolo, ho perso un'altra volata !!!
Ciao @Alex !

 Ciao @Alex !
Hei ciao Sandro....!
Cosa hai preso..?
;-)
Buona giornata e ben risentito.


 Buona giornata e ben risentito.
Grazie, ti risento volentieri anch'io !
Penso che intendessi dire perso e non preso ?
E' che quando avevo iniziato a scrivere non c'erano reply, poi quando ho
cliccato invia c'era ormai il tuo post a due minuti di distanza e allora
ecco il motivo della "volata persa".
Allora racconta com'č andata in Toscana ? Hai riparato la macchina
fotografica ?
Ti sei divertito/rilassato ?
Dai, racconta, racconta ... cosě' rosichiamo un po'.... !
Ciao.

 Ciao.
Purtroppo ho annullato tutto per un'influenza.
Dire che sono incazzato è forse scontato... e quì chi rosica
sono io ....................................
Ormai è passato e non ci penso più.
La macchina non l'ho riparata, purtroppo è da sostituire
e con i tempi che passano ed il livello di Macchina da
sostituire penso che aspetterà ancora un pò.
Sarà per la prossima volta, intanto mi godo un week-end di lavoro.
Ciao


 ha scritto nel messaggio
news:7a8df199e1e7431f6c...@mygate.mailgate.org...

Accidenti che peccato !
Mi dispiace aver rigirato il coltello nella piaga, credevo di averti fatto
un bella domanda !
E pure il week-al lavoro ?!
Una settimana da dimenticare, anche per me ...
Ti saluto e buon week-end.
Ciao.

 ha scritto nel messaggio
news:d3om0o$e99$1...@balena.cs.interbusiness.it...

Grazie anche a te sandro provo a vedere!