Nuovo utente con password criptata

di clamasa il
17 risposte

Inserendo nuovo utente mi appare 

Errore di run time 13   Tipo non corrispondente

(Trasform fa riferimento a un modulo di criptazione)

Qualche suggerimento?

Grazie

If Me.txtPassword = Me.txtPassword2 Then

 Me.txtPassword = Transform(Me!txtPassword)


 DoCmd.RunSQL "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"

17 Risposte

  • Ciao,

    metti un punto di interruzione su DoCmd….
    Esegui in Debug il codice

    Quando si ferma su l'istruzione DoCmd…. apri Finestra Immediata e con il ? vedi il contenuto della stringa quali valori vengono impostati.

    Esempio:

    Finestra Immediata
    ? "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"
  • In quale riga ti viene evidenziato l'errore?

  •  DoCmd.RunSQL "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"
  • Sei sicuro che l'errore sia in quella linea? O in quella precedente?

  • Si evidenzia in giallo quella linea

  • By65Franco

    se  Inserisco il ? come da te indicato ed eseguo il debug

    la stringa diventa 

    Print "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"
  • 06/05/2023 - clamasa ha scritto:


    By65Franco

    se  Inserisco il ? come da te indicato ed eseguo il debug

    la stringa diventa 

    Print "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"

    manda in esecuzione il codice e quando si ferma al punto di interruzione vai in finestra immediata e interroghi la stringa 
    Il risultato non è quello che hai postato adesso, ma deve farti vedere come riempe le variabili

    Oppure semplicemente passa il cursore del mouse sopra le due variabili che ti fa vere i valori che contengono

    Da qui capisci se c'è un problema sulle variabili… se contengono caratteri speciali non ammessi nella stringa Sql e/o altro, etc…

  • Semplicemente aggiungi prima della riga con l'errore la riga

    Debug.Print "INSERT INTO _Users (User, PWD) VALUES ('" & Me.User & "', '" & Me.txtPassword & "')"
  • passando il cursore del mouse sopra le due variabili vedo nome utente ma non la passw criptata

    sarà forse per aver cambiato l'algoritmo di codifica? ho messo SHA 

    in precedenza col precedente algoritmo tutto funzionava

    oregon 

    aggiungendo quanto suggeritomi ,sempre errore runtime 13 ma si evidenzia la riga aggiunta

  • Quindi Runtime 13 è l'errore corretto, ti dice che stai trattando tipi di variabili e dati non coerenti

    Metti in debug Transform(Me!txtPassword) e segui passo passo il codice che esegue e vedrai che troverai il punto in cui porta la funzione a restituire un valore non valido in Me.txtPassword

  • Errore di compilazione

    Argomento non facoltativo

    evidenziando TRansform

    lo stesso si verifica   clicco su login  coi campi vuoti

  • 06/05/2023 - clamasa ha scritto:


    Me.txtPassword = Transform(Me!txtPassword)

    su questa riga di codice ?   …. per la function c'è uno o più parametri da passare obbligatori e pertanto devono essere passati

    Posta la riga Function Trasform() As….         e vediamo cosa c'è scritto nei parametri

    Poi non capisco perchè usare me!txtPassword…. Usa Me.txtPassword

  • 06/05/2023 - clamasa ha scritto:


    sarà forse per aver cambiato l'algoritmo di codifica? ho messo SHA 

    in precedenza col precedente algoritmo tutto funzionava

    E ce lo dici solo ora? perchnon ssubito all'inizio del thread? È ovvioo che la password non viene criptata e quindi rimane vuota per un errore nella nuova funzione.

  • 07/05/2023 - oregon ha scritto:


    06/05/2023 - clamasa ha scritto:


    sarà forse per aver cambiato l'algoritmo di codifica? ho messo SHA 

    in precedenza col precedente algoritmo tutto funzionava

    E ce lo dici solo ora? perchnon ssubito all'inizio del thread? È ovvioo che la password non viene criptata e quindi rimane vuota per un errore nella nuova funzione.

    oregon perdona loro perchè non sanno cosa fanno ;))

    Però magari si abituano ad utilizzare il Debug ed analizzare le righe di codice ;)

    (ovviamente scherzoooo)

Devi accedere o registrarti per scrivere nel forum
17 risposte