Gestione delle modifiche a database access

di il
3 risposte

Gestione delle modifiche a database access

Buon giorno.
Avrei necessità di apportare delle modifiche a delle tabelle (aggiungendo campi) sul db lato server e a delle maschere, a delle funzioni sul db lato client.
Non posso accedere direttamente ai due db neppure con collegamenti remoti (teamviewer, Anydesk ecc) perchè questi db sono in Tanzania in luogo dove appunto non si riescono a fare collegamenti di quel tipo (si riesce a volte comunicare via email senza utilizzo di allegati pesanti).

Ho visto che con query di definizione dati posso creare e modificare tabelle. Mi servirebbe conoscere le tipologie in inglese dei tipi campo (text, ecc)
Ho visto che posso estrarre dal mio db le maschere e le funzioni che ho modificato e metterle in altro db.
E poi io mi sono fermato qui.
Va bene questo approccio?
2 db di servizio con le modifiche specifiche per i due db effettivi?

Quali istruzioni devo dare una volta che in Tanzania hanno ricevuto le mie modifiche perché le possano applicare?

Grazie tante.

Giorgio

3 Risposte

  • Re: Gestione delle modifiche a database access

    Cerco di capire meglio.
    Hai un Client ed un Server in formato MDB o ACCDB...?
    Devi implmentare ovviamente sia il Server con Campi aggiuntivi nelle Tabelle, e di conseguenza nel Client le eventuali Queries e Maschere e Reports.

    Ora, il Server con i dati lo devi MODIFICARE con dei comandi, hai 2 modi:
    1) Query Action con comandi DDL
    2) Codice, puoi usare DAO o ADO, io userei DAO se il server è JET, se fosse SQL_Server userei ADO.

    Ora io fossi in te farei tutto da VBA, soluzione 2, e non con Query ACTION che poi sono comandi DDL, in quanto decisamente più semplice gestirli e gestirne gli errori eventuali.

    Quindi, io creerei un File MDB o ACCDB come quello che hai già, e scriverei una funzione che, aprendo il DB remoto vada ad implementare i campi nelle tabelle richieste.

    I metodi migliori, per me, da usare in casdo di SERVER JET(Access) sono questi:
    https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/tabledef-createfield-method-dao
    https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/fields-append-method-dao

    Se vuoi usare comandi DDL invece questo:
    https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/alter-table-statement-microsoft-access-sql

    Ci sono già esempi, tieni conto che non hai variazioni tra ITALIANO ed INGLESE in nessun caso, salvo quando poi utilizzi i dati, ma solo si campi DATA, ma questo lo dovresti già aver visto.

    Quindi scrivi il codice in un file esterno mettendo la macro AUTOEXEC che richiama la tua funzione di UPGRADE, poi lo passi e lo fai eseguire.
    Se fossi in te per sicurezza scriverei il codice in modo che fvada a cercare il DB nella stessa posizione del File(Upgrade) così da non far fare nulla all'utente.
    strPATHDB=CurrentProject.Path & "\NomeDelServer.mdb"
    Fatto questo il Server è pronto.
    Il Client invece non puoi fare una cosa simile, o meglio sarebbe assurdo, ti conviene aprire il Sorgente, implementare i Controlli associati sul tuo file, e lo redistribuisci dopo la compilazione.

    Non puoi fare altrimenti perchè il codice che servirebbe per implementare e gestire le modifiche sulle maschere/reports/queries sarebbe inutilmente impegnativo, tanto meglio se lo apri lo modifichi lo provi in locale e poi lo distribuisci.
  • Re: Gestione delle modifiche a database access

    Grazie Alex.
    Io in vero ho due db mdb, uno che contiene i dati e l'altro che ha le tabelle collegate al precedente con appunto viste e maschere.

    Vedo cosa riesco a fare.
    Grazie ancora
  • Re: Gestione delle modifiche a database access

    Appunto è lo scenario di cui parlavo... si chiamano sempre Client Server o FrontEnd e BackEnd vedi tu poco cambia.
Devi accedere o registrarti per scrivere nel forum
3 risposte