Newsgroup: it.comp.appl.access
Titolo: msgbox controllo inserimento dati

Salve a tutti,
Utilizzo la routine qui sotto per controllare che avvenga
l'inserimento in un controllo della mia msk.
Private Sub ComuneCensuario_Exit(Cancel As Integer)
        Dim IntNuovo As Integer, strTitolo As String
        Dim IntFinestraMsg As Integer, strMsg As String
        strTitolo = "Attenzione"
        strMsg = "Devi inserire un dato valido, Continuare?"
        IntFinestraMsg = vbYesNo + vbQuestion
        If IsNull(ComuneCensuario) Then
        IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        If IntNuovo = vbNo Then
            Cancel = True
            Me.Undo
            Comando32.SetFocus
            Comando30.SetFocus
        Else
            Progetto.SetFocus
            ComuneCensuario.SetFocus
        End If
        End If
End Sub
La msgbox mi chiede se voglio continuare oppure no.
Se rispondo Si si riposiziona sul controllo,
Se gli dico di NO dovrebbe annullare i dati presenti nella
MSK e spostare il focus in un pulsante di comando.
Di fatto annulla i dati presenti in MSK ma
il focus rimane sul controllo e non mi permette di fare
nessuna operazione.
Come posso risolvere questo problema?
Un'altra cosa, dato che questa routine la devo mettere
in altri 5 controlli della mia MSK, come posso evitare
di ripetere la routine per ogni controllo?
Grazie in anticipo
--
Debora

> "Debora.Maniero" [...]:

    Cancel = Annulla. Ok?
    Se tu *annulli* l'evento <controllo>_Exit che succede?... Che non esci
da <controllo>.
    E' questo che vuoi? Pare di no. Allora perche' quel
        Cancel = True
nel tuo codice?
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:amcsdm$4ojkb$1...@ID-52090.news.dfncis.de...

dovresti inserirlo nell'avento Prima di aggiornare (beforeupdate)
bye
Riccardo

 nel tuo codice?
ehhhh, bella domanda!
Grazie Maurizio.
P.S. Sai come posso fare per questo:
         dato che questa routine la devo mettere
          in altri 5 controlli della mia MSK, come posso evitare
          di ripetere la routine per ogni controllo?
--
Debora

 dovresti inserirlo nell'avento Prima di aggiornare (beforeupdate)
    Scusa, Riccardo M. Ma dici a me?
    (Potresti, per favore, evitare di rispedire tutto il post? Grazie.)



Cosa? La routine?
Non so, dagli esempi che ho trovato nel NG, ho
visto che erano sull'evento Exit. certo se non ci
passo col tab, sono fregata!
Provero a spostare la routine in beforeupdate.
Dopo la modifica indicatami da Maurizio
ora funziona benissimo.
Grazie anche a te Riccardo.
--
Debora

           di ripetere la routine per ogni controllo?
    Private Function <NomeCheVuoi>( _
      ByVal NomeControllo As String _
    , ByVal QuelCheVuoi As TipoCheServe _
    ) As Boolean
      .
      .
      .
    End Function
    Private Sub ComuneCensuario_Exit( _
      ByRef Cancel As Integer)
      If (<NomeCheVuoi>(
Me.ComuneCensuario.Name
, ...)=True Then
        .
        .
      Else
        .
        .
      End If
    End Sub
e cosi' per tutti i controlli.
-oppure-
semplificato:
    Private Sub ComuneCensuario_Exit( _
      ByRef Cancel As Integer)
      <NomeCheVuoi> 
Me.ComuneCensuario.Name
, ...
    End Sub
    Chiaramente c'e bisogno di passare l'oggetto o il nome dell'oggetto alla
funzione <NomeCheVuoi> ***SE*** tale funzione deve comportarsi in modi
diversi a seconda del controllo chiamante. Altrimenti non servono argomenti.


 ha scritto nel messaggio
news:amctdu$4no4v$1...@ID-52090.news.dfncis.de...

_________________________
no, non dicevo a te....
a Debora.
ciao
Riccardo
(la prossima volta taglio un po di post... ok?)

 Grazie in anticipo
io in genere faccio un'altra cosa
L'evento che attivo e' l'afterupdate o beforeupdate  a livello di form
e lì faccio la verifica per tutti i controlli che mi 
interessano ed anche il controllo di variazione (c'e' nel
sito comune) per evitare variazioni accidentali
(ora nel 2000 c'e' anche la proprieta' Dirty che
risolve qualcosa). La verifica a tale livello fa si 
che anche se non si passa sul campo il controllo di validita'
viene cmq. eseguito
detto questo, invece, sui singoli controlli faccio un'altra cosa
Prendo la tua  routine ad esempio
sull'evento di BeforeUpdate
scrivo sulla proprieta' dell'evento, invece di [routine evento]
per tutti i controlli che lo richiedono
=ControlChk(Forms!nomedellaform;"nome controllo")
e poi in un modulo
**********************************
Public Function ControlChK(frm as form, controllo as string)
    Dim IntNuovo As Integer, strTitolo As String
    Dim IntFinestraMsg As Integer, strMsg As String
    strTitolo = "Attenzione"
    strMsg = "Devi inserire un dato valido in " & controllo " ,
Continuare?"
    IntFinestraMsg = vbYesNo + vbQuestion
    If IsNull(frm(controllo)) Then
        IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo) '?????
        If IntNuovo = vbNo Then
 '''''''''           Cancel = True
            frm.Undo    
            DoCmd.CancelEvent
 ''''''''           'Comando32.SetFocus  '??????????????????????
            frm.Comando30.SetFocus   '  questa dovrebbe essere variabile
I        Else
 '''''''''           Progetto.SetFocus   '??????????????????????
            frm(controllo).SetFocus  'qui perche' rimani sul controllo?
        End If
    End If
End Sub
****************************
Continui a mettere 2 setfocus, non capisco perche'.
quando la emetti la stringa strMsg?
frm(controllo).SetFocus rischi di rimanere sempre sul controllo
sequenza msg->vbyes->focus..msg->vbyes->focus...etc
o il tuo continuare significa "stai qui che ci metto qualcosa"?
e il vbNo a che serve? Vedo che vai su un altro controllo
c'e' qualcosa nella logica che mi sfugge????????????????????????
Ci possono essere da gestire anche le proprieta' ValidoSe e
MessaggioErrore
--
S.E. & O.
a.cara

 MessaggioErrore
Si senzaltro! Se č per quello ci sono anche le macro che per
una che non sa niente di VBA sono comodissime! Ma il VBA
con le macro e come paragonare Gabriel Garko con Giuliano Ferrara in
fatto di bellezza!!!!
Attendo la tua risposta con ansia!
--
Debora

Attendo la tua risposta con ansia!
La mia è che come al solito si prefirisce il bello, aitante e magro al
brutto,  grasso ma "intelligente" ... è proprio vero che ci fermiamo
solo all'apparenza , da te non me la sarei aspettato.  :-))) (risata )
Ciao. Fabrizio

 fatto di bellezza!!!!
Il secondo lo conosco, toppo grosso per passare inosservato
ma il primo Ki-Ka-Tze
--
a.cara

 solo all'apparenza , da te non me la sarei aspettato.  :-))) (risata )
La tua affermazione è quanto meno errata,
1) xkè non conosci Garko personalmente quindi non puoi
dire che non sia intelligente .
2) Se leggi bene quanto ho scritto, ho sottolineato
 "IN FATTO DI BELLEZZA".  Se avessi fatto un
paragone di intelligenza avrei  messo ..... ma dai, oggi
sono di buon umore e non voglio essere cattiva con nessuno!
3) L'ultimo ragazzo che ho avuto è un rospo, e questo ti
fa capire quanto per me è importante la bellezza esteriore!
Se non ti basta ti aggiungo anche un altro punto ma in un
prossimo post.
Scegli tu, ma non mi provocare! ;-PP so essere pungente!!!
--
Debora

     ...................................
E' una buona idea, ma voglio lasciare cmq all'operatore
sempre l'ultima scelta, decide lui se premere quel
pulsante ed uscire!
--
Debora

Scegli tu, ma non mi provocare! ;-PP so essere pungente!!!
Non aggiungere , perchè non so stare zitto e faccio sempre fatica a
far capire che scherzo.
Ciao. Fabrizio

 far capire che scherzo.
Ho capito che scherzi, scemotto (in senso buono), io ho fatto lo stesso!
--
Debora

Ho capito che scherzi, scemotto (in senso buono), io ho fatto lo stesso!
Non era rivolto a te, a dire il vero , ma ad alcuni che si sono offesi
per colpa mia ( era una frase trasversale ) :-))
Ciao. Fabrizio