StackPtr ha scritto:
Private Sub txtAccessoAutomatizzato_AfterUpdate()
...
    If Posiz = 0 Then   ' Quello che è stato scritto non è corretto.
        ' Cancello la casella di testo e ci riposiziono il cursore.
        Me.txtAccessoAutomatizzato = Null
        Me.txtAccessoAutomatizzato.SetFocus
    Else
...
        Recon = False   ' Inizializzo
        Recon = TrovaOperatore(strNome, strPwd) ' Check dell'utente
        If Recon = False Then
            ...
        End If
        If Recon = True Then
            ...
        End If
    End If
End Sub
Ho eliminato qualche interruzione di riga per guadagnare spazio (ricorda l'uso dei tag CODE, il codice deve comparire come lo vedi scritto qui sopra e più avanti nel post, non come testo normale).
Alcune migliorie di "stile" che aiutano a seguire meglio l'esecuzione del codice  e la sua lettura.
Prima If: all'uscita della parte vera si va di fatto alla fine della sub. Senza tenere tutto il resto della routine dentro Else, metti un Exit Sub dentro la parte vera della If. Diverso il caso in cui ci fosse altro codice da eseguire sempre.
Recon: valore boolean, vero o falso. Inutile fare due If: se non è vero deve per forza essere falso. Si mette in una If unica con il classico Else. Proprio perché è già boolean non ho bisogno di verificarne l'uguaglianza con True o False. Ne sfrutto direttamente il valore (in questo caso con la negazione Not, per "invertirlo") per condizionare l'esecuzione della parte vera o falsa della If.
Private Sub txtAccessoAutomatizzato_AfterUpdate()
...
    If Posiz = 0 Then   ' Quello che è stato scritto non è corretto.
        ' Cancello la casella di testo e ci riposiziono il cursore.
        Me.txtAccessoAutomatizzato = Null
        Me.txtAccessoAutomatizzato.SetFocus
        Exit Sub
    End If
...
        Recon = TrovaOperatore(strNome, strPwd) ' Check dell'utente
        If Not Recon Then
            Me.txtAccessoAutomatizzato = Null
            Me.txtAccessoAutomatizzato.SetFocus
        Else
            strGlbNomeOperatore = strNome
            DoCmd.OpenForm "frmAutomatizzato", acNormal
        End If
Detto questo andiamo al problema in senso stretto: non so dov'è il problema.
L'unica cosa che ci dai per certa è il funzionamento quando nome utente e pwd presi dalla lettura del qr code sono giusti ma la maggior parte del codice gestisce altre situazioni. Vedo la presenza di variabili non dichiarate, come pure di una funzione, quindi di certo c'è altro codice. Le variabili che usi e che non si vedono dichiarate a livello di routine sono comunque dichiarate a livello di modulo o globali? Detto in un altro modo: c'è Option Explicit in ogni modulo?
Dopo aver riscritto il codice come ti ho suggerito prova a fare un debug con esecuzione di una riga per volta.
Confido in un'illuminazione in corso di giornata.