PDA

View Full Version : [VB] Database MS-Access con dentro codice Visual Basic


PinzeroLippa
24-03-2010, 23:11
Ciao a tutti.
Per lavoro devo modificare un database di Access, che sembra essere stato fatto con Access 97.
Noi lo apriamo con Access 2003.

Contiene tutta una parte in Visual Basic che disabilita i normali menu di Access per modificare la struttura del database, e tanto poi per lavorarci sopra ci sono tutta una serie di maschere e di query custom scritte proprio in visual basic, o almeno credo.

Però ormai si è reso necessario modificare proprio la struttura del database, fare nuove maschere, nuove queri, modificare quelle già esistenti, aggiungere dei campi eccetera.

Io me la cavo bene bene con SQL, Access così così. So creare e modificare database ma una roba con codice Visual Basic incorporato non me l'ero mai trovata di fronte.

Pensavo che sto documento (.MDB) fosse una sorta di file compilato e che per modificarlo fosse necessario una sorta di file "sorgente", ma il tizio che l'ha creato (che peraltro non lavora più qui), giura che esiste il modo di aprire e modificare il tutto senza bisogno di password né file ulteriori (ma non dice come).

Suggerimenti?

PS: avrei postato più volentieri sta cosa in un forum sui database, ma qui su hardware upgrade non ne ho visti. Scusate l'eventuale errore.

MarcoGG
24-03-2010, 23:57
Contiene tutta una parte in Visual Basic che disabilita i normali menu di Access per modificare la struttura del database, e tanto poi per lavorarci sopra ci sono tutta una serie di maschere e di query custom scritte proprio in visual basic, o almeno credo.


Se query, maschere, report ecc. provengono da creazioni guidate, allora è possibile che il DB non contenga neanche una riga di VBA. In quel caso esiste solo la parte che, come dici, disabilita i menu.
In ogni caso, se si pensa ad una modifica strutturale del database, ovviamente ciò comporterà la ricostruzione da zero, o comunque una modifica sostanziale, di molti oggetti.


Pensavo che sto documento (.MDB) fosse una sorta di file compilato e che per modificarlo fosse necessario una sorta di file "sorgente", ma il tizio che l'ha creato (che peraltro non lavora più qui), giura che esiste il modo di aprire e modificare il tutto senza bisogno di password né file ulteriori (ma non dice come).


Un DB Access '97 è un semplice file .mdb singolo che contiene tutto, tabelle, query, reports, maschere e moduli di codice. Nessun file esterno è richiesto da Access, nè Access di sua iniziativa crea files secondari.

PinzeroLippa
25-03-2010, 00:05
Se query, maschere, report ecc. provengono da creazioni guidate, allora è possibile che il DB non contenga neanche una riga di VBA. In quel caso esiste solo la parte che, come dici, disabilita i menu.
In ogni caso, se si pensa ad una modifica strutturale del database, ovviamente ciò comporterà la ricostruzione da zero, o comunque una modifica sostanziale, di molti oggetti.



Un DB Access '97 è un semplice file .mdb singolo che contiene tutto, tabelle, query, reports, maschere e moduli di codice. Nessun file esterno è richiesto da Access, nè Access di sua iniziativa crea files secondari.

Grazie per la risposta: ma se c'é la "parte che disabilita i menu", che quindi a sto punto immagino che sia un semplice flag nel file, non c'è modo di disabilitarla? Ci vuole una password? Se ci vuole la password proviamo a chiederla al tizio che l'ha fatto. O vediamo in qualche antico archivio email se c'è da qualche parte. Lui dice che è tutto modificabile tranquillamente, ci sarà un modo.
Noi di nome utente e password attualmente abbiamo solo quella "standard" che serve ad aprire il file del database.

MarcoGG
25-03-2010, 00:14
Grazie per la risposta: ma se c'é la "parte che disabilita i menu", che quindi a sto punto immagino che sia un semplice flag nel file, non c'è modo di disabilitarla? Ci vuole una password? Se ci vuole la password proviamo a chiederla al tizio che l'ha fatto. O vediamo in qualche antico archivio email se c'è da qualche parte. Lui dice che è tutto modificabile tranquillamente, ci sarà un modo.
Noi di nome utente e password attualmente abbiamo solo quella "standard" che serve ad aprire il file del database.

Non penso sia questione di "flag". Esistono comandi VBA precisi per influire sui menu di un'applicazione Office. Una certa combinazione di queste istruzioni poste all'avvio del progetto può effettivamente rendere arduo l'utilizzo dei normali menu. Di solito all'avvio di un progetto Access che contiene codice VBA scattano alcune finestre di richiesta conferma sull'esecuzione del codice non sicuro. Rispondendo sempre di voler bloccare questo codice, dovrebbe essere possibile evitare la scomparsa dei menu...

PinzeroLippa
25-03-2010, 01:26
Non penso sia questione di "flag". Esistono comandi VBA precisi per influire sui menu di un'applicazione Office. Una certa combinazione di queste istruzioni poste all'avvio del progetto può effettivamente rendere arduo l'utilizzo dei normali menu. Di solito all'avvio di un progetto Access che contiene codice VBA scattano alcune finestre di richiesta conferma sull'esecuzione del codice non sicuro. Rispondendo sempre di voler bloccare questo codice, dovrebbe essere possibile evitare la scomparsa dei menu...

grazie ancora, ho googolato come un druido inferocito e ho scoperto che per disattivare le macro che partono in automatico basta tenere premuto "shift" mentre si apre il documento. Ho provato, et voilà, s'è aperto tutto, è tutto modificabile, persino il codice visual basic.
Era una cosa banalissima hahaha, vabé l'importante è esserci riusciti.

Buonanotte. :-)

MarcoGG
25-03-2010, 12:45
grazie ancora, ho googolato come un druido inferocito e ho scoperto che per disattivare le macro che partono in automatico basta tenere premuto "shift" mentre si apre il documento. Ho provato, et voilà, s'è aperto tutto, è tutto modificabile, persino il codice visual basic.
Era una cosa banalissima hahaha, vabé l'importante è esserci riusciti.

Buonanotte. :-)

Beh, più facile del previsto. Meglio così. ;)