[Access] cambio password a tempo [RISOLTO]

Anonimo
2009-12-02T18:45:32+00:00

Ciao a tutti, vorrei implementare la form di cambio passoword con un temporizzatore in modo da rendere obbligatorio il cambio della password dopo un certo tot di tempo.

inoltre vorrei che 5 giorni prima della scandenza l'utente fosse informato ad ogni avvio del programma con msgbox che ricorda quanti giorni mancano alla scadenza. la data in cui è stata cambiata la pssword password può essere rilevata dal campo "Data_registrazione" della tabella Tbl_utenti". Grazie.

Sto partendo da qui:

Private Sub Form_Load()

Dim scad As Date

Dim rim As String

Dim mes As String

     scad = Attivazione + 60 'Giorni di durata dalla registrazione

     rim = scad

     mes = "Mancano " & DateDiff("d", Date, rim) & " giorni alla scadenza della tua password"

         MsgBox mes

     If scad <= Date Then

          MsgBox "La tua password è Scaduta!"

          DoCmd.Close acForm, "PannelloComandi"

          DoCmd.OpenForm "FrmChangePassword", acNormal

     End If

End Sub

grazie

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
Risposta accettata dall'autore della domanda
Anonimo
2009-12-03T16:43:14+00:00

ciao per ora ho risolto modificando in quuesto modo:

Private Sub Form_Load()

Dim scad As Date

Dim rim As String

Dim mes As String

Dim restanti As Integer

If Len(Me.OpenArgs) > 0 Then

   Me.Caption = Me.OpenArgs

End If

'la stringa sottostante verifica la data di modifica dell'ultima password cambiata dall'utente corrente.

scad = DLookup("data_modifica", "Tbl_utenti", "Utente = """ & Forms!mascher4!utente & """")

' 60 sono i giorni di validità della password

scad = DateAdd("d", 60, scad)

rim = scad

' le due  stringhe sottostanti (che ho disabilitato perchè la funzione è fastidiosa) fanno il conto alla rovescia informando l'utente  con msgbox all'apertura della form

'mes = "Mancano " & DateDiff("d", Date, rim) & " giorni alla scadenza della tua password"

'MsgBox mes

If scad <= Date Then

   MsgBox "La tua password è Scaduta!"

   DoCmd.Close acForm, "MAschera1"

   DoCmd.OpenForm "FrmChangePassword", acNormal

End If

restanti = DateDiff("d", Date, scad)

If restanti < 5 Then

   'mes = "Mancano " & restanti & " giorni  alla scadenza della tua password! "

   'MsgBox mes

  End If

Dim retValue As Integer

Dim strTtl As String

strTtl = "Scadenza"

strMsg = "Mancano " & restanti & " giorni  alla scadenza della tua password! Vuoi Cabiarla ora? "

retValue = MsgBox(strMsg, vbQuestion + vbYesNo, strTtl)

Select Case retValue

Case vbYes

DoCmd.Close acForm, "MAschera1"

DoCmd.OpenForm "FrmChangePassword", acNormal

Cancel = True

Case vbNo

DoCmd.OpenForm "MAschera1"

End Select

End Sub

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2009-12-03T12:10:39+00:00

    Buongiorno Cinzia

    per trovare la data di registrazione ho provato con scarso successo

    scad = DLookup("data_registrazione", "Tbl_utenti", "Utente = """ & Form!mascher4!utente & """")

    ed ho rilevato questi errori:

    l'utente evidenziato in blu restituisce il primo user contenuto nella tabella accessi e non l'user corrente e scad evidenziato in verde restituisce come data 28/02/1900. Di seguito ti posto l'intero codice.

    Grazie.

    Private Sub Form_Load()

    If Len(Me.OpenArgs) > 0 Then

    Me.Caption = Me.OpenArgs

    End If

    Dim scad As Date

    Dim rim As String

    Dim mes As String

    scad= DLookup("data_registrazione", "Tbl_utenti", "Utente = """ & Form!mascher4!utente & """")

         scad = data_registrazione + 60 'Giorni di durata dalla registrazione

         rim = scad

         mes = "Mancano " & DateDiff("d", Date, rim) & " giorni alla scadenza della tua password"

             MsgBox mes

         If scad <= Date Then

              MsgBox "La tua password è Scaduta!"

              'DoCmd.Close acForm, "MAschera1"

              DoCmd.OpenForm "FrmChangePassword", acNormal

         End If

    Dim restanti As Integer

    restanti = DateDiff("d", Date, scad)

    If restanti < 5 Then

                      mes = "Mancano " & restanti & " giorni  alla scadenza della tua password! "

                      MsgBox mes

    End If

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2009-12-02T21:30:23+00:00

    Ciao Cinzia mi interessava anche questo ma anche sapere come devo fare per far prendere come riferimento la data che si trova nel campo "Data_Registrazione" della "tabella Tbl_utenti". così com'è mi dice che mancano -40089 giorni alla scadenza della password.

    Il campo Data_Registrazione e un campo now() quindi contiene anche l'ora che forse questo è un altro problema.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2009-12-02T20:48:53+00:00

    Ciao Luca,

    la partenza è buona! Di primo acchito direi che manca il controllo sul messaggio 5 gg. prima della scadenza che potresti implementare così:

    dim restanti as integer

    restanti = DateDiff("d", date, scad)

    if restanti < 5 then

                     mes  = "Mancano " & restanti  & " giorni  alla scadenza della tua password! "

                     MsgBox mes

    end if

    ma ho l'impressione che volessi sapere qualcos'altro... 


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento