ChangeProperty Applicazione

di il
3 risposte

ChangeProperty Applicazione

Buongiorno.

Vorrei realizzare un'applicazione access che si attivi dopo aver inserito username e password.
In base alle autorizzazioni un utente admin deve avere accesso illimitato alle funzioni di Access, mentre gli utenti normali devono poter lavorare solo con le funzioni previste dai form disponibili ed eventualmente il menu specifico (ribbon), quindi non devono vedere le tabelle, il codice, ecc.

Seguendo alcuni esempi ho visto che è necessario impostare delle proprietà, come per esempio:

ChangeProperty "StartupShowDBWindow", DB_BOOLEAN, False
ChangeProperty "AllowBuiltinToolbars", DB_BOOLEAN, False
ChangeProperty "AllowFullMenus", DB_BOOLEAN, False
ChangeProperty "AllowBreakIntoCode", DB_BOOLEAN, False
ChangeProperty "AllowSpecialKeys", DB_BOOLEAN, False
ChangeProperty "AllowBypassKey", DB_BOOLEAN, False

All'apertura dell'applicazione eseguo per tutti ChageProperty e poi solo per l'amministratore attivo le proprietà.
Al di là di testare prima o dopo aver saputo se l'utente è amministratore o meno, sembra che le proprietà siano impostate come desiderate solo alla successiva apertura dell'applicazione.
MI spiego meglio.
La prima volta apro l'applicazione, imposto tutte le proprietà a FALSE, apro il form iniziale dell'applicazione, ma le proprietà sembrano essere nello stato precedente al ChangeProperty.
Chiudo l'applicazione e riapro e le proprietà sono impostate come desiderato.
Sembra che l'impostazione effettiva venga applicata durante la chiusura.

Se è così, come posso applicare le impostazioni subito?

Grazie
Ciao

3 Risposte

  • Re: ChangeProperty Applicazione

    È proprio così, vengono applicate alla successiva riapertura.
    Quindi non puoi applicarle subito... però puoi chiudere e riaprire...
  • Re: ChangeProperty Applicazione

    @Alex ha scritto:


    però puoi chiudere e riaprire...
    Grazie per la conferma.

    La tua affermazione citata che cosa significa?
    Che esiste un metodo che riapre il file?

    In ogni caso il form di login verrebbe riemesso.
    Cosa è consigliabile fare, creare un file access per il login e un file dell'applicazione?
  • Re: ChangeProperty Applicazione

    epiworld ha scritto:


    @Alex ha scritto:


    però puoi chiudere e riaprire...
    Grazie per la conferma.

    La tua affermazione citata che cosa significa?
    Che esiste un metodo che riapre il file?
    Interno ad Access no ovviamente, ma basta delegare ad uno script ESTERNO, anche in VBS la chiusura e la riapertura, io lo feci con un EXE in VB6 giusto perchè non si vedesse il codice... ma un VBS è assolutamente perfetto.

    epiworld ha scritto:


    In ogni caso il form di login verrebbe riemesso.
    Dipende da come sviluppi tu il sistema... ti faccio un esempio...
    Access supporta la lettura dei Command$ Parameters, quindi basterebbe, quando lo si lancia passare i dati di LOGIN e prevedere nel sistema un codice che, leggendo appunto i Command$, vada a Bypassare la Form di Login...
    Cosa veramente banale da fare, basta definire delle Public Properties nel DB, e lo script VBS recupera i dati di autenticazione attuali, e li passa come Command$ in apertura.
    Su AutoExec esegui una Function che va a leggere i Command$ ed esegue...
    Oppure salvi con SaveSetting 2 chiavi di registro con User e Pwd(magari criptata)... e, se leggi il Command$ "AutoLogon" vai a rileggere con GetSetting le 2 chiavi e riattivi l'utente...


    https://stackoverflow.com/questions/27904046/ms-access-how-to-determine-the-command-line-parameters-that-the-current-instanc
    https://www.dmcinfo.com/latest-thinking/blog/id/247/read-command-line-parameters-from-vba

    epiworld ha scritto:


    Cosa è consigliabile fare, creare un file access per il login e un file dell'applicazione?
    Non ti complicare la vita... inizia con le cose semplici.
Devi accedere o registrarti per scrivere nel forum
3 risposte