Condividi:        

Protezione DB Access e codice VBA

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Protezione DB Access e codice VBA

Postdi Tekkon_84 » 02/03/11 18:11

Salve a tutti! Ho cercato nel forum una risposta a un mio quesito ma, non riuscendoci provo a chiedervi direttamente.
Ho un DB Access con pulsanti su maschere tramite i quali sono attivabili delle Routine VBA.
Ora, dovrei assolutamente fare in modo che nessun altro possa vedere il codice VBA (a parte me ovviamente).
Se possibile dovrei anche bloccare la possibilità di modificare gli oggetti (tabelle, query e maschere).
Il DB si apre con un autoexec e "teoricamente" se ci si limitasse ad inserire i dati (cioè quello che gli utenti devono fare) sarebbe tutto ok...peccato che anche un bambino sa che premento SHIFT all'apertura si ha accesso all'elenco completo degli oggetti...
Come posso fare? Ho provato con la conversione MDE, ma il problema rimane (codice visibile, e tabelle /query modificabili)

Devo per forza intraprendere la strada "account utenti/amministratori"?

Grazie a tutti anticipatamente

P.s. Il DB è nato sotto Office2003 e le macchina sulla quale deve girare ha Off.2000
Tekkon_84
Utente Junior
 
Post: 15
Iscritto il: 25/01/11 16:34

Sponsor
 

Postdi archimede » 02/03/11 18:28

archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Protezione DB Access e codice VBA

Postdi Tekkon_84 » 03/03/11 00:23

Ciao Archimede...intanto grazie per la risposta celere!
Ho letto il post che mi hai linkato e i relativi commenti...
ma non credo che faccia proprio al caso mio... li si parla di un DB che debba girare su un server.
Il mio caso è molto più semplice. Ho un DB in cui io sono l'Amministratore e ho accesso completo a tutto (strutture oggetti, dati, codice VBA ecc ecc....tutto!). Poi c'è un unico utente (Chiamato ad es. Mario) che deve avere un tipo di accesso limitato (in pratica deve solo poter aprire il DB, le maschere, eseguire le macro associate epoter immetere i dati tramite maschera. Ma non deve poter modificare nulla, ne vedere il codice VBA, ne vedere le tabelle o le query.
L'utente mario ha la copia del file Access sulla sua chiavetta usb e il file viene eseguito dalla chiave. Io (saltuariamente) come amministratore dovrei avere accesso completo solo per qualche piccola manutenzione futura.
Quindi:
- L'MDE è buono per il codice VBA e per le strutture delle maschere e report, ma lascia visibili tabelle e query...
altre soluzioni?
Tekkon_84
Utente Junior
 
Post: 15
Iscritto il: 25/01/11 16:34

Re: Protezione DB Access e codice VBA

Postdi Flash30005 » 03/03/11 08:34

Puoi nascondere gli oggetti come riportato qui

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Protezione DB Access e codice VBA

Postdi Tekkon_84 » 03/03/11 10:53

Ok. Opterei allora per:
- Conversione in MDE per proteggere le maschere, report e il codice VBA;
- Nascondo tutti gli altri oggetti (tabelle, query e Macro);
- Dalle opzioni di Avvio disabilito tutto (in particolare: Menu completi-No; Barra di stato-No; Vis. Finestra DB-No; Barre strumenti e modifica barre-No);
- poi ho un autoexec con il quale apro la prima maschera e da qui poi tutto il resto;
Fin qui tutto ok. Chiunque apra il DB, non può ne vedere ne modificare gli oggetti e il codice. Benissimo!

Restano alcune domande:
1) Io (in qualità di amministratore) devo poter vedere e modificare oggetti e codice. E questo posso farlo aprendo il file e premendo "shift". Ovviamente (essendo un MDE) posso solo vedere e modificare tabelle/query/macro.
Mentre per Maschere/report/Vba devo far riferimento al MDB originale, e poi eventualmente riconvertire tutto in MDE.
Come posso evitare che qualcun altro apra il file premendo SHIFT e quindi aggirando tutto? :)

2) Ipotizziamo che il MDE venga usato per un anno o due, e quindi contenga parecchi record nelle sue tabelle. Arriva il momento in cui devo cambiare qualcosa (una maschera o una stringa del codice VBA), come posso fare? Pensavo: Riprendo l'MDB originale, faccio le modifiche necessarie, esporto le tabelle dall'MDE "vecchio" al MDB nuovo e modificato, poi riconverto quet'ultimo in MDE con le opzioni specificate sopra. (opzioni di Avvio ecc. ecc.) Si dovrebbe poter fare...o no?

3) Compattazione. Se non ho capito male, la C. riduce le dimensioni del file (il quale in seguito alla creazione ed eliminazione di vari oggetti aumenta di dimensione) e riordina i dati. Ma se io creo l' MDE, dove nessuno può modificare/cancellare/creare nuovi oggetti, ma si può solo inserire dati nelle tabelle tramite maschere, è necessaria la C. ? Mettere la C. automatica ad ogni chiusura rallenta molto la chiusura?

Grazie a tutti per le risposte e scusate per il "tema"!! Spero però di essere stato almeno chiaro... :)
Tekkon_84
Utente Junior
 
Post: 15
Iscritto il: 25/01/11 16:34

Postdi archimede » 03/03/11 12:20

Tekkon_84 ha scritto:Come posso evitare che qualcun altro apra il file premendo SHIFT e quindi aggirando tutto?
Era una delle cose descritte nel link da me postato prima. Vedi anche qui.
Tekkon_84 ha scritto:Arriva il momento in cui devo cambiare qualcosa (una maschera o una stringa del codice VBA), come posso fare?
Usa due files: un mdb per tabelle/viste e un mde per tutti gli altri oggetti. Vedi qui.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Protezione DB Access e codice VBA

Postdi Tekkon_84 » 03/03/11 14:42

Mmm...dunque per quanto riguarda il tasto shift...ho provato anche se a me non funziona! Forse sbaglio qualcosa, proverò a fare ulteriori tentativi. Ma mi viene il dubbio...poi io come faccio a Ri-abilitare il comando Maiusc?? Se non posso piu aggirare le impostazioni di avvio?

Poi...Per i due files (mdb e mde) ok...

Infine ... per la Compattazione nessun suggerimento?

grazie infinite!!
Tekkon_84
Utente Junior
 
Post: 15
Iscritto il: 25/01/11 16:34

Postdi archimede » 03/03/11 18:06

Tekkon_84 ha scritto:poi io come faccio a Ri-abilitare il comando Maiusc?? Se non posso piu aggirare le impostazioni di avvio?
Ovviamente tu devi lavorare su un file mdb non protetto: al momento di creare l'mde da dare agli utenti, attivi la protezione (su una copia dell'mdb non protetto).

Per quanto riguarda la Compattazione, nel momento in cui hai due files il problema non si pone: quando crei l'mde puoi compattare l'mdb prima, ma comunque la creazione dell'mde mi pare che implichi un compact in ogni caso. Il file mdb che contiene i dati avrà bisogno di un compact ogni tanto (a seguito di operazioni di update e delete). Quanto spesso dipende dalla quantità di tali operazioni, ma se lo fai una volta al mese direi che può bastare.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Applicazioni Office Windows


Topic correlati a "Protezione DB Access e codice VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti