[Access] eseguire due codici con lo stesso pulsante comando.

Anonimo
2009-12-08T08:25:35+00:00

Buongiorno a tutti,

ho da porre alla vostra attenzione un nuovo quesito.

Per comodità vorrei eseguire due codici, ora attualmente affidati a due diversi pulsanti comando , ad un unico pulsante.

tutte le mie prove hanno avuto scarso successo. vi rigrazio anticipatamente.

allego i due codici:

1° codice

Private Sub Comando23_Click()

Dim ctrl As Control

For Each ctrl In Me.Controls

If ctrl.Tag = "OBBLIGATORIO" Then

ctrl.BackColor = vbWhite ' oppure colore standard

If Len(ctrl.value & "") = 0 Then

ctrl.SetFocus

ctrl.BackColor = vbRed

MsgBox "Attenzione il controllo " & ctrl.Name & " è obbligatorio.."

Exit Sub

End If

End If

Next

Set ctl = Nothing

Dim strTtl As String

Dim strMsg As String

strTtl = "ATTENZIONE!"

MsgBox "Registrazione eseguita con successo"

DoCmd.Close acForm, Me.Name

Exit Sub

End Sub

2° codice

Private Sub Comando30_Click()

Set DB = CurrentDb

Set rs = Recordset

If Len(Nz(Me.password, "")) = 0 Then

MsgBox "Inserisci la Password.", , "Password"

Me.password.SetFocus

Else

If Len(Nz(Me.passwordverify, "")) = 0 Then

MsgBox "Inserisci la password di verifica.", , "Password di Verifica "

Me.passwordverify.SetFocus

Else

If Me.passwordverify <> password Then

MsgBox "Attenzione,la password di verifica è stata inserita in modo errato.", , "Password di Verifica"

Me.passwordverify = Null

Me.password = Null

Me.password.SetFocus

Else

If Me.passwordverify = Me.password Then

        If DLookup("[password]", "controllo") = Me.password Then

MsgBox ("Attenzione!!! Record gia Presente nella tabella "), vbInformation ' controlla se il record è gia presente nella tabella

Me.passwordverify = Null

Me.password = Null

Me.password.SetFocus

     Else

     Me.refresh

CurrentDb.Execute "Update tbl_utenti SET password ='" & passwordverify & "' WHERE utente= '" & Me!utente & "'"

   MsgBox ("Password inserita nella tabella "), vbInformation

End If

End If

End If

End If

End If

End Sub

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

10 risposte

Ordina per: Più utili
  1. Anonimo
    2009-12-11T08:50:30+00:00

    Ciao Luca,

    per quanto riguarda le due istruzioni che ho omesso, si le ho omesse volutamente perchè nè ctl nè strTtl sono usate da nessuna parte, per cui non si capisce che ci stavano a fare.

    Per quanto riguarda il problema tuo specifico non ho capito se hai provato entrambi i suggerimenti che ti ho dato nel post precedente.

    NOTA: Il codice postato non conteneva nè l'uno nè l'altro, ti avevo lasciato l'onere di fare la modifica.


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2009-12-10T17:37:55+00:00

    Ciao Cinzia,

    Rileggendo attentamente il tuo codice ho notato che non hai utilizzato

    Set ctl = Nothing strTtl = "ATTENZIONE!"

    Lo hai omesso volutamente?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2009-12-09T22:43:38+00:00

    Ciao Cinzia sempre genitilissima, ho provato la tua soluzione ma non effettuata i controlli di congruenza delle due password. ti incollo il mio codice che presenta, come ho esposto nel precedente post,  il problema del doppio messaggio.

    Grazie

    Private Sub Comando32_Click()

    Set DB = CurrentDb

    Set rs = Recordset

    If Len(Nz(Me.password, "")) = 0 Then

    MsgBox "Inserisci la Password.", , "Password"

    Me.password.SetFocus

    Else

    If Len(Nz(Me.passwordverify, "")) = 0 Then

    MsgBox "Inserisci la password di verifica.", , "Password di Verifica "

    Me.passwordverify.SetFocus

    Else

    If Me.passwordverify <> password Then

    MsgBox "Attenzione,la password di verifica è stata inserita in modo errato.", , "Password di Verifica"

    Me.passwordverify = Null

    Me.password = Null

    Me.password.SetFocus

    Else

    If Me.passwordverify = Me.password Then

            If DLookup("[password]", "controllo") = Me.password Then

    MsgBox ("Attenzione!!! Record gia Presente nella tabella "), vbInformation ' controlla se il record è gia presente nella tabella

    Me.passwordverify = Null

    Me.password = Null

    Me.password.SetFocus

         Else

         Me.refresh

    CurrentDb.Execute "Update tbl_utenti SET password ='" & password & "' WHERE utente= '" & Me!utente & "'"

    End If

    End If

    End If

    End If

    End If

    Dim ctrl As Control

    For Each ctrl In Me.Controls

    If ctrl.Tag = "OBBLIGATORIO" Then

    ctrl.BackColor = vbWhite ' oppure colore standard

    If Len(ctrl.value & "") = 0 Then

    ctrl.SetFocus

    ctrl.BackColor = vbRed

    MsgBox "Attenzione il controllo " & ctrl.Name & " è obbligatorio.."

    Exit Sub

    End If

    End If

    Next

    Set ctl = Nothing

    strTtl = "ATTENZIONE!"

    MsgBox "Registrazione eseguita con successo"

    DoCmd.Close acForm, Me.Name

    Exit Sub

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2009-12-09T08:41:46+00:00

    Private Sub Comando32_Click() Set DB = CurrentDb Set rs = Recordset If Len(Nz(Me.password, "")) = 0 Then MsgBox "Inserisci la Password.", , "Password" Me.password.SetFocus Else If Len(Nz(Me.passwordverify, "")) = 0 Then MsgBox "Inserisci la password di verifica.", , "Password di Verifica "
    Me.passwordverify.SetFocus Else If Me.passwordverify <> password Then MsgBox "Attenzione,la password di verifica è stata inserita in modo errato.", , "Password di Verifica" Me.passwordverify = Null Me.password = Null Me.password.SetFocus Else If Me.passwordverify = Me.password Then If DLookup("[password]", "controllo") = Me.password Then MsgBox ("Attenzione!!! Record gia Presente nella tabella "), vbInformation ' controlla se il record è gia presente nella tabella
    Me.passwordverify = Null Me.password = Null Me.password.SetFocus Else Me.refresh CurrentDb.Execute "Update tbl_utenti SET password ='" & passwordverify & "' WHERE utente= '" & Me!utente & "'" End If End If End If End If End If
    '-----DA QUI ---------

    Dim ctrl As Control For Each ctrl In Me.Controls If ctrl.Tag = "OBBLIGATORIO" Then ctrl.BackColor = vbWhite ' oppure colore standard If Len(ctrl.value & "") = 0 Then ctrl.SetFocus ctrl.BackColor = vbRed MsgBox "Attenzione il controllo " & ctrl.Name & " è obbligatorio.." Exit Sub End If End If Next '-----A QUI ------ MsgBox "Registrazione eseguita con successo" DoCmd.Close acForm, Me.Name Exit Sub End Sub

    Ciao Luca,

    ho rimesso il tuo codice in cima, perchè nel tuo messaggio era illeggibile.

    Se ho ben capito, basterebbe mettere una Exit sub subito dopo il reset delle password.

    In alternativa potresti spostare il pezzo di codice che fa la verifica dei campi obbligatori  quello che ho marcato DA QUI   ---- A QUI

    all'inzio della procedura in modo che prima verifichi i campi obbligatori, poi la verifica di concordanza delle password... ecc...


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2009-12-08T09:39:39+00:00

    Ciao, ho risolto il problema pulsante in questo modo, l'unica cosa che non mi soddisfa è che minel caso di password non concordante che quindi viene resattata msgbox scrivo comunque che il campo password è un campo obbligatorio è pssibile che questo tipo di messaggio ci sia solo se si tenta la registrazione saltando il campo e non i caso di reinserimento della password? codice: Private Sub Comando32_Click() Set DB = CurrentDb Set rs = Recordset If Len(Nz(Me.password, "")) = 0 Then MsgBox "Inserisci la Password.", , "Password" Me.password.SetFocus Else If Len(Nz(Me.passwordverify, "")) = 0 Then MsgBox "Inserisci la password di verifica.", , "Password di Verifica " Me.passwordverify.SetFocus Else If Me.passwordverify <> password Then MsgBox "Attenzione,la password di verifica è stata inserita in modo errato.", , "Password di Verifica" Me.passwordverify = Null Me.password = Null Me.password.SetFocus Else If Me.passwordverify = Me.password Then If DLookup("[password]", "controllo") = Me.password Then MsgBox ("Attenzione!!! Record gia Presente nella tabella "), vbInformation ' controlla se il record è gia presente nella tabella Me.passwordverify = Null Me.password = Null Me.password.SetFocus Else Me.refresh CurrentDb.Execute "Update tbl_utenti SET password ='" & passwordverify & "' WHERE utente= '" & Me!utente & "'" End If End If End If End If End If Dim ctrl As Control For Each ctrl In Me.Controls If ctrl.Tag = "OBBLIGATORIO" Then ctrl.BackColor = vbWhite ' oppure colore standard If Len(ctrl.value & "") = 0 Then ctrl.SetFocus ctrl.BackColor = vbRed MsgBox "Attenzione il controllo " & ctrl.Name & " è obbligatorio.." Exit Sub End If End If Next Set ctl = Nothing strTtl = "ATTENZIONE!" MsgBox "Registrazione eseguita con successo" DoCmd.Close acForm, Me.Name Exit Sub End Sub

    La risposta è stata utile?

    0 commenti Nessun commento