Salve a tutti,
ho la necissità di distribuire una applicazione access costituita da i due classici db di BE e FE (rispettivamente base dati e applicativo con tabelle collegate al BE)
La solita necessità di proteggere il più possibile l'applicazione mi ha portato a formulare il seguente ragionamento.
Protezioene del BE esclusivamente con password complessa di almeno 12 caratteri.
FE; file con codice compilato in .accde e disabilitazione del tasto Shift. Funzione di relink automatico o richiesta percorso BE in caso non presente nella stessa directory. Come ben sappiamo queste attività garantiscono una protezione finta per chi conosce
un minimo di access. Infatti è possibile riabilitare dall'esterno tramita codice vba l'utilizzo dello shift del FE.e una volta entrati nel nella struttura del FE andando in lettura della tabella di sistema MSysObjects è possibile vedere in chiaro, in corrispondenza
degli oggetti tabelle collegate, la papassword del db BE. Dunque le uniche cose che rimarrebbero riservate sono: la struttura delle maschere e tutto il codice VBA editato compilato. L'idea che ho avuto (penso che l'abbiano avuta in molti :)) è quella di collegare
le tabelle del BE al FE da codice ogni volta che apro il FE. Il trucco è nel fatto che da codice se trovo il tasto Shift abilitato lo disabilito e chiudo il db altriemnti procedo con il ricollegamento delle tabelle. Qusto comporterà il fatto che le mie tabelle
saranno collegate solo se ho aperto il FE senza tasto Shift premuto. Fin qui sono riuscito ad impementare tutto. Il problema nasce quando a chiusura del database cerco di eliminare le tabelle collegate presenti nel FE. Tramite codice mi cerco tutti i nomi
delle tabelle collegate e con il comando DoCmd.DeleteObject acTable, "nome Tabella" cerco di eliminarle una ad una. Durante tale operazione mi vien fuori un errore che mi dice che è impossibile eliminare la tabella richiesta in quanto sono presenti relazioni
della stessa con altre tabelle. In effetti le tabelle nel BE sono Collegate da relazioni per garantire lintegrità referenziale dei dati. C'è un altro modo per eliminare quelle tabelle dal FE? Oppure ...,ancora meglio, esiste un metodo ugualmente o più sicuro
per proteggere il mio applicativo.
Mi scuso delle lungaggini ma c'era bisogno che spiegassi bene la situazione
Vi ringrazio anticipatamente !