Pulsante comandato da password

di il
11 risposte

Pulsante comandato da password

Salve a tutti, avrei un problama da sottoporvi: in una maschera di Access ho diversi pulsanti che svolgono varie funzioni, uno di questi dovrebbe poter essere accessibile tramite una password. Tra le proprietà non ho trovato questa possibilità, è possibile attraverso una macro? Tramite codice sarà certamente possibile, ma non sono in grado.

11 Risposte

  • Re: Pulsante comandato da password

    Non c'è nulla di NATIVO, devi gestire tutto tramite il VBA.
    TI suggerisco tuttavia di razionalizzare le tue esigenze e di valutare l'eventuale uso di un LOGIN all'ingresso in modo da riuscire ad avere una gestione UTENTI invece che singola interrogazione.

    @Alex
  • Re: Pulsante comandato da password

    Ti ringrazio per la risposta, ma avevo già preso in esame il login in ingresso e risolto che non mi andava bene. Accetto consigli anche per cominciare a muovere i primi passi verso il VBA. Buon lavoro.
  • Re: Pulsante comandato da password

    Ciao.
    Da programmatore, mi vengono in mente un paio di soluzioni:
    - vcino al pulsante in questione, metti una TextBox, nella quale va scritta la PassWord affinchè alla pressione del pulsante sia effettuata la sua funzione;
    - Al codice scatenato dalla pressione del 'tuo' CommandButton (evento 'Click'), aggiungi la richiesta di una pw, con la comparsa di una 'InputBox';
    Quale ti andrebbe meglio...?
    Comunque sia, va modificato il codice VBA collegato all'evento 'click' del tuo pulsante, postaci quel pezzettino di codice.
    Saluti.
  • Re: Pulsante comandato da password

    Posso suggerirti questo mio Demo:

    http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=297

    @Alex
  • Re: Pulsante comandato da password

    Essendo poco più che a conoscenza dell'esistenza del VBA, ho aggirato il problema in questo modo (certamente poco ortodosso e che farà inorridire i più) :
    ho creato due tabelle T_Psw e T_PswTemp, ambedue con un campo testo PSW e due maschere M_Psw e M_PswTemp con un campo testo collegato ai campi delle due tabelle. Nella T_Psw è memorizzata la password e in T_PswTemp quella inserita nella maschera M_PswTemp.
    Ho impostato il valore ABILITATO dell'interruttore di cui devo modificare lo stato dopo l'inserimento di una password a FALSO.
    Ho creato un pulsante sopra l'interruttore, con l'etichetta PASSWORD, la cui pressione esegue una macro che mi apre le due maschere, M_Psw (nascosta) e M_PswTemp pronta per l'inserimento.
    Inserita la password e premuto invio viene eseguita una macro che ha come condizione l'uguaglianza dei due campi PSW delle due maschere, se la condizione è VERO imposta il valore ABILITATO dell'interruttore a VERO, cancella la password inserita e chiude le due maschere.
    Infine la pressione dell'interruttore esegue una macro che sposta il controllo ad un altro oggetto della maschera ed imposta nuovamente a FALSO il valore ABILITATO del famigerato interruttore.
    Non ifierite perfavore. Di nuovo buon lavoro.
  • Re: Pulsante comandato da password

    Bomby io ho risolto con questo:


    Private Sub [Nome bottone]_Click()
    Dim Password As String

    'Richiesta codice

    Richiesta:
    Password = InputBox("Insert the Password", "Attenzione!")
    If Password = "123" Then
    DoCmd.OpenForm "[Maschera che vuoi aprire]", acNormal, "", "", , acNormal
    ElseIf Password = "" Or IsNull(Password) = True Then
    Exit Sub
    ElseIf MsgBox("Password not valid" & Chr(13) & Chr(10) & "Try again", vbCritical + vbYesNo, "Errore") = vbYes Then
    GoTo Richiesta
    Else
    Exit Sub
    End If
    End Sub

    ovviamente devi togliere tutte le parentesi quadre
    ciao
  • Re: Pulsante comandato da password

    Ciao matius, ti ringrazio, ho provato solo adesso il codice che mi hai scritto e devo dire che per me che, ripeto, non conosco VBA, è sempre con stupore che scopro come con poche righe di codice si aggirano cervellotiche macro. Una cosa, per modificare la psw, si può fare solo modificando la stringa all'interno del codice vero? Di nuovo grazie e buon lavoro.
  • Re: Pulsante comandato da password

    Ora io comprendo la poca conoscenza del mezzo e la poca dimestichezza nell'uso del codice... che spesso non consente di vedere un passo avanti... ma mi permetto di evidenziare un limite alla soluzione suggerendo una domanda...

    Se voi vi trovaste ad usare un'applicativo che ad ogni apertura della stessa maschera continua
    a chiedere la PWD... cosa pensereste...?
    Non parliamo poi se le maschere da gestire fossero N... sarebbe un continuo giochino di Pwd da immettere.

    Un minimo di scomodità credo possa essere evidente.
    Senza parlare che poi come già ti sei accorto la PWD non è modificabile.
    Senza parlare che poi in caso di MULTIUTENZA ogni User vorrebbe la sua...

    Queste considerazioni sono quelle che un programmatore vede prima di iniziare ad improvvisare, ed assicuro che nelle valutazioni di cervellotico c'è solo pensare che soluzioni come queste possano semplificare le cose.
  • Re: Pulsante comandato da password

    Chiedo scusa, probabilmente mi sono spiegato male, la maschera si apre normalmente e viene usata per tutte le sue funzioni di inserimento e variazioni da più utenti su più postazioni. E' soltanto un interruttore che è comandato da password e serve ad archiviare il record. E' gestito da una persona e può modificare la password in maniera semplice attraverso l'inserimento della password in uso e due inserimenti della nuova. Funziona anche se la password, essendo inserita in una tabella apposita, è alla portata di chiunque abbia dimestichezza di Access ed avviasse il data base tenendo premuto il tasto maiusc ed andasse a visualizzare la tabella che è nascosta. Normalmente viene utilizzato esclusivamente come applicazione da appositi pannelli di controllo che svolgono tutte le funzioni di inserimenti, variazioni, ricerche e stampe da utenti che non sono in grado di visualizzare le tabelle, la funzione della password è quella di assegnare soltanto ad un utente la possibilità di archiviare il record terminato. Grazie dei suggerimenti, ciao.
  • Re: Pulsante comandato da password

    Mi permetto, da autodidatta, di proporre due soluzioni, una “light”, l’altra più “professionale”; ma funzionano entrambe.
    Queste procedure hanno un senso solo se si sono preventivamente definiti accessi a più Account ai quali sono state attribuiti privilegi differenziati nell’utilizzo di maschere, query, report.

    Per la versione light, io ho risolto in questo modo:

    per ogni pulsante che desidero attivare solo tramite password, ho creato una routine su “Evento- Su attivato”:

    Private Sub Tasto_GotFocus() ‘ Tasto indica il “Nome elemento” attribuito al tasto
    If CurrentUser <> ACC1 _ ‘ ACC1 e ACC2 sono autorizzati alla modifica, gli altri Utenti no
    And CurrentUser <> ACC2 _
    Then
    [campo successivo].SetFocus ‘ Indicare il campo in cui si desidera collocare il cursore
    End If
    End Sub
    ___ … ___

    Versione più strutturata:

    1. ho creato un modulo in VBA, nel quale vengono dichiarate le costanti e le variabili utilizzate nelle routine successive e una routine dove viene definito il messaggio che si desidera far comparire nel caso in cui un Utente cerchi di modificare il valore di un campo, senza esserne autorizzato.

    Option Compare Database
    ‘ Elenco di tutti gli Account ai quali concedere l’accesso alle modifiche
    Public Const ACC1 As String = "Admin" ‘ Account autorizzato alla modifica
    Public Const ACC2 As String = "pg" ‘ Account autorizzato alla modifica
    Public Const ACC3 As String = "Administretor" ‘ Account autorizzato alla modifica
    Public Const ACCn As String = "…" ‘ Account autorizzati alla modifica

    Public Msg as string, Style, Title as String
    Public Response, Style

    2. routine per definire il messaggio che compare quando si cerca di modificare un campo, senza autorizzazione.

    Sub Messaggio_Account()
    Title = "Account" ' Definisce il titolo.
    Msg = "L'Utente " & CurrentUser & " non è autorizzato a questo tipo di modifica;" & vbCr _
    & " contattare l'Amministratore di sistema." ' Definisce il messaggio.
    Style = vbOKOnly + vbCritical
    Response = MsgBox(Msg, Style, Title)
    End Sub

    3. per ogni pulsante che desidero attivare solo tramite password, ho creato una routine su “Evento- Su attivato”:

    Private Sub Tasto_GotFocus() ‘ Tasto indica il “Nome elemento” attribuito al tasto
    If CurrentUser <> ACC1 _ ‘ ACC1 e ACC2 sono autorizzati alla modifica, ACC3 e ACCn no
    And CurrentUser <> ACC2 _
    Then
    Messaggio_Account ‘ Attiva il messaggio di errore
    [campo successivo].SetFocus ‘ Indicare il campo in cui si desidera collocare il cursore
    End If
    End Sub

    Spero di essere stato abbastanza esaustivo.

    Cordiali saluti e buon lavoro.

    A disposizione.

    Giuseppe Guernieri
  • Re: Pulsante comandato da password

    Scusa bomby non entro da un sacco!
    nelle proprietà del tasto su click scegli generatore di codice poi copia e incolla brutalmente quel codice e mettici la password che ti pare al posto di 123! ciao
Devi accedere o registrarti per scrivere nel forum
11 risposte