+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Occultamento dell'interfaccia ACCESS tramite DB password separato

  1. #1
    BennyB non è in linea Scolaretto
    Post
    96

    Occultamento dell'interfaccia ACCESS tramite DB password separato

    Buongiorno.
    Sto cercando di capire come lanciare il mio DB di gestione tramite un DB di accesso che controlli la password.
    Per limitare le funzioni a menu e occultare l'interfaccia Access vorrei utilizzare le funzioni indicate nel seguente link: MS ACCESS Code Sample - versione usabile/accessibile. Non so, tra l'altro, se con Access 2010 sono ancora attive. Già questa è una domanda. MI sono informato con altre discussioni in rete e ho anche altre indicazioni da verificare.
    In ogni modo, vengo al punto.

    Al momento la mia situazione è la seguente:
    WINDOWS 7 - ACCESS 2010.
    • Ho un db Accesso di nome "base" che contiene solo la form per la password controllata tramite una tabella (DB1).
    • Ho poi il db "Archivio" che è il db di gestione vero e proprio (DB2).
    • Apro DB1 e controllo la password separando tra sviluppatore - amministratore - utente (NB: l'archivio è su un solo computer, ma l'accesso è condiviso e vario)
    • Ottenuta la password corretta, vorrei aprire DB2 e trasferire la stringa (o la variabile) per comunicargli chi accede
    • Applico le istanze di protezione in apertura e chiudo DB1

    Al momento, ho provato ad aprire DB1 tramite il seguente codice:
    codice:
    Dim appAccess As Access.Application
        
        Set appAccess = New Access.Application
        With appAccess
            .OpenCurrentDatabase "U:\Access\Archivio.accdb"
            .Visible = True
         if pass=1 then 'sviluppatore
              .Eval ("ArgumentReceiver('A')")
         elseif pass=2 then 'amministratore
              .Eval ("ArgumentReceiver('B')")
         else: .Eval ("ArgumentReceiver('C')")
         endif
        End With
        Set appAccess = Nothing
        ...
    in DB2 ho:
    codice:
    Public Function ArgumentReceiver(ByVal Argumento As Variant)
    
        if Argumento="A" then
               'niente
        elseif Argumento="B" then
               'occulta interfaccia e aggiungi voci al menu per l'amministrazione
        else: 'occulta interfaccia
        endif
        
    End Function
    al momento ho un paio di problemi, di cui il più complesso per me resta come chiudere DB1 lasciando libertà di lavoro in DB2.
    Le mie domande sono:
    • E' possibile chiudere DB1? Utilizzando application.quit si chiudono ovviamente entrambi i DB.
    • C'è un altro metodo possibile? Per esempio dbengine.opendatabase? Non so come passare le variabili in questo caso...
    • C'è qualcuno che mi può altrimenti indicare una strada diversa?


    Spero vogliate rispondermi.

    Grazie.

  2. #2
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,808
    scusa una domanda che esula dal tuo problema... ma cosa non ti piace dell'interfaccia Access?
    se la blocchi e ti crei una tua ribbon non è niente male sai, anzi...
    che tradotto è: ti crea qualche problema o non riesci a gestirla per proteggere il tuo programma?

  3. #3
    BennyB non è in linea Scolaretto
    Post
    96
    par la verità vorrei vedere solo le mie maschere pulite, senza menu, riquadri di spostamento e quant'altro. Il mio DB è bell'e pronto, e tutte le attività sono gestite dalle maschere e dai relativi tasti. Inoltre, è anche una questione di protezione dagli accessi a vba e alle tabelle (che si può fare in vari modi, certo, ma occultando l'interfaccia e lasciando le sole maschere tutto resta più pulito).

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,569
    Quote Originariamente inviato da BennyB Visualizza il messaggio
    par la verità vorrei vedere solo le mie maschere pulite, senza menu, riquadri di spostamento e quant'altro. Il mio DB è bell'e pronto, e tutte le attività sono gestite dalle maschere e dai relativi tasti. Inoltre, è anche una questione di protezione dagli accessi a vba e alle tabelle (che si può fare in vari modi, certo, ma occultando l'interfaccia e lasciando le sole maschere tutto resta più pulito).
    Non diciamo cose assurde... che tu non voglia vedere la form MDI di Access è un conto, estremamente discutibile e poco funzionale ma possiamo anche sorvolare..., che possa essere una protezione assolutamente no.... nemmeno per scherzo.
    La strategia invece che hai esposto per la gestione dei login è strana... di solito in un sistema cliente server nel cliente non si salva nulla... nel server si trova la tabella di gestione utenti...
    Al LOGIN il client interroga il Server nella Tabella LOGIN e se le credenziali corrispondono si LINKANO le Tabelle.
    Ultima modifica di @Alex; 01-10-2016 10:34 
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,808
    inutile dirlo ma lo dico lo stesso... concordo al 100% con Alex

  6. #6
    BennyB non è in linea Scolaretto
    Post
    96
    Bene... siamo su un piano diverso, ovviamente. Non sto gestendo un DB in un sistema cliente server, come forse avrete intuito. Però, volevo studiare il metodo di correlazione tra 2 DB differenti, sfruttando il primo per la gestione delle password ed il secondo per il DB completo, con maschere, tabelle, queries, ecc., impostando in quest'ultimo l'occultamento dell'interfaccia tranne nel caso di accesso come sviluppatore.
    In ogni modo, magari un dubbio potete togliermelo partendo dal mio codice di cui nella domanda: come faccio ad aprire in DB da un DB passando dal 1° al 2° dei dati, e poi tramite un comando chiudere il 1° DB? Con il mio codice non è possibile, come sopra accennato. Se potete aiutarmi... grazie.

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi