Sistema login multilivello errore null

di il
3 risposte

Sistema login multilivello errore null

Buongiorno  stò creando un DB per la gestione di allievi dove lavoro per semplificare (fanno ancora raccolta dati cartaceo). di seguito elenco il codice della funzione indicata nel modulo di access. da una maschera menù si accede o meno ad altre maschere ma mi restituisce sempre errore Null. Sto impazzendo perchè è la seconda volta che lo riprogrammo dal mio pc, arrivo in ufficio e dopo qualche prova mi restituisce errore, poi lo provo di nuovo sul mio e non va nemmeno li, in sostanza dal mio pc funziona e arrivo in ufficio pensando di aver risolto e dopo qualche tentativo riuscito poi non va piu. Accees diversi ? 

In grassetto corsivo e sottolineato dove mi restituisce il debug, chiuso il debug si apre lo stesso la maschera. 

Public Function AccessoPagina(pagename As String)

   Dim Dat As Integer
   Dim Ins As Integer
   Dim Lav As Integer
   Dim Laq As Integer
   
   Dat = DLookup("Dati", "LivelloQ", "Username = '" & TempVars("Username") & "'")
   Ins = DLookup("Inserimento_Dichiarazione", "LivelloQ", "Username = '" & TempVars("Username") & "'")
   Lav = DLookup("Lavorazione", "LivelloQ", "Username = '" & TempVars("Username") & "'")
   Laq = DLookup("LavorazioneQuadroPerm", "LivelloQ", "Username = '" & TempVars("Username") & "'")
   
   Select Case pagename
       Case "Dati"
       If Dat = -1 Then
       DoCmd.OpenForm "Dati"
       Else
       MsgBox "Accesso negato", vbOKOnly + vbCritical
       DoCmd.Close acForm, "Dati"
       DoCmd.OpenForm "Menù"
       End If
       
       Case "Inserimento_Dichiarazione"
       If Ins = -1 Then
       DoCmd.OpenForm "Inserimento_Dichiarazione"
       Else
       MsgBox "Accesso negato", vbOKOnly + vbCritical
       DoCmd.Close acForm, "Inserimento_Dichiarazione"
       End If

       Case "Lavorazione"
       If Lav = -1 Then
       DoCmd.OpenForm "Lavorazione"
       Else
       MsgBox "Accesso negato", vbOKOnly + vbCritical
       DoCmd.Close acForm, "Lavorazione"
       End If
       
       Case "LavorazioneQuadroPerm"
       If Laq = -1 Then
       DoCmd.OpenForm "LavorazioneQuadroPerm"
       Else
       MsgBox "Accesso negato", vbOKOnly + vbCritical
       DoCmd.Close acForm, "LavorazioneQuadroPerm"
       End If
   End Select
End Function

3 Risposte

  • Re: Sistema login multilivello errore null

    Mi raccomando: tag code per il codice ed indentazione fatta bene con il Select Case e le If.

    08/11/2024 - Ake ha scritto:

    Dat = DLookup("Dati", "LivelloQ", "Username = '" & TempVars("Username") & "'")

    Dat è dichiarato come Integer, quindi deve essere numerico (all'interno di una certa soglia, ma è normale). DLookup se non trova niente in base alle condizioni indicate, restituisce un Null. Il programma non può attribuire ad una variabile di tipo Integer il valore Null (accettato solo da Variant). Hai predisposto una gestione degli errori nel codice?

    Tra casa e lavoro cambia lo Username? Potrebbe essere il motivo per il quale da una parte va poi no. Il fatto che si apra lo stesso la maschera dopo l'errore non lo so spiegare.

    Prendo dal titolo: cos'è un login multilivello?

  • Re: Sistema login multilivello errore null

    Dat è una maschera, un form da aprire solo se nella query  è spuntata o meno si/no. Esiste una T livelli e una TUtenti da cui si genera la Q. Non capisco però il tuo consiglio , ho allegato tutto il codice del modulo creato. Ed ho richiamato per ogni form al caricamento la funzione.  Login multilivello , voglio dire che vari utenti accedono ad aree loro dedicate per la funzione dei loro uffici , sanitario , personale, matricola ecc . Ognuno la sua username e password.

    Sul pc dopo aver finito il DB funziona a dovere, db su chiavetta, poi quando lo uso sul PC ufficio mi da quell'errore e poi non funziona più neanche sul mio PC. Ho guardato le librerie dal vba e ci sono tutte quelle per le funzioni e variabili pubbliche. In ufficio c'è una rete ma il db resta su chiavetta.

    Grazie .

  • Re: Sistema login multilivello errore null

    Multilivello sarebbero i permessi?

    Beh, al login se utente e password corrispondono select * from utenti where idutente=utenteloggato

    Nella pagina e/o form e/o campi da mostrare leggi i permessi nei campitabella utenti.

    Flag a true e false

    Se (tabella.campoinserimento) allora apri paginainserimento

    Altrimenti messaggio “non hai i permessi contatta l'amministratore”.

    A che serve quella funzione? Già la vita è complicata…

Devi accedere o registrarti per scrivere nel forum
3 risposte