Tabelle collegate

di
Anonimizzato10190
il
3 risposte

Tabelle collegate

Forse è una questione banale, ma non riesco a venirne a capo. Un aiutino? grazie
Con una query di creazione tabella creo la tabella Archivio_NomePaese e la colloco nel server di rete K:
arch = "SELECT F_domande.* INTO Archivio_" & ElencoPaesi & " IN 'K:\MO_GR_bandi_be.mdb' FROM F_domande WHERE Paese=" & "'" & ElencoPaesi & "'" & ";"
DoCmd.RunSQL arch
ora ho bisogno di aprire una maschera che prenda i dati dalla tabella Archivio_NomePaese che ho in K:
Forms!Tbl_archivio.RecordSource = "'K:\Contributi_GR_be.mdb' Archivio_Paese"
Mi sapreste dire quale è la giusta sintassi del percorso con apici, virgole ecc.?
Grazie

3 Risposte

  • Re: Tabelle collegate

    Questo non è EXCEL...!
    Se hai creato una Nuova Tabella ServerSide o BackEnd... non puoi semplicemente fare quello che hai scritto.

    Se apri l'Help alla proprietà RecordSource, proprietà dedicata ad un'oggetto di tipo FORM, questa richiede come Origine una Tabella o Query, ed è sottinteso riconosciute dal CLIENT.

    Nel tuo caso se hai delle LinkedTable, devi aggiungere una NUOVA LINKED_TABLE, in sostanza devi far vedere al tuo CLIENT la NUOVA TABELLA che hai creato nel SERVER.
    Per Far questo puoi farlo a Mano... con Crea Tabella(Linkata)... oppure da Codice... ed anche quì ci sono vari metodi.
    Il più Semplice è usare il Metodo Nativo TransferDatabase
    
    Sub TransferDatabase([TransferType As AcDataTransferType = acImport], 
                       [DatabaseType], 
                       [DatabaseName], 
                       [ObjectType As AcObjectType = acTable], 
                       [Source], 
                       [Destination], 
                       [StructureOnly], 
                       [StoreLogin])
        Membro di Access.DoCmd
    Ora a prescindere da questo suggerimento tecnico... personalmente non ho mai dovuto aggiungere Tabelle da codice... mi sembra formalmente un'azione non corretta.
    Di norma chi sviluppa struttura il DB con il relativo CLIENT, e se deve aggiugere Tabelle mette in manutenzione il SERVER, e poi redistribuisce un NUOVO CLIENT...!
    Spero che la tua esigenza di aggiunegete Tabelle derivi da considerazioni tecniche corrette...
  • Re: Tabelle collegate

    Di certo non mi sono spiegato esaurientemente. Ci riprovo.
    Ho una tabella back-end linkata su K: a cui hanno accesso vari utenti dell'Ufficio.
    La tabella contiene delle domande classificate per Paese. Una volta concluso il lavoro di valutazione delle domande, quelle relative a un certo Paese possono essere archiviate. Sia perché non sono più di uso corrente, sia per alleggerire la tabella principale che viene alimentata in continuazione.
    L'archiviazione avviene con questo comando:
    txtsql = "SELECT F_domande.* INTO Archivio_" & ElencoPaesi & " IN 'K:\MO_GR\Bandi_MO_GR_be.mdb' FROM F_domande WHERE Paese=" & "'" & ElencoPaesi & "'" & ";"
    DoCmd.RunSQL txtsql
    ElencoPaesi è un combobox da cui si sceglie un Paese.
    Si crea quindi, per esempio, una tabella Archivio_India in K: e i record con il valore "India" nel campo Paese della tabella F_domande vengono cancellati.
    La necessità ora è quella di accedere alla tabella Archivio_India in K:\ per visionarne il contenuto in una maschera.
    Ho provato il comando SELECT * FROM con il percorso esterno in cui la tabella Archivio_India è salvata, ma non funziona. Questa è la stringa di comando:
    Forms!Tbl_archivio.RecordSource = "SELECT* FROM Archivio_" & ElencoPaesi & " IN 'K:\MO_GR_bandi_be.mdb';"
    Una cosa è certa: la tabella è stata salvata in K:\ Come posso richiamarla tramite codice?
  • Re: Tabelle collegate

    Ti sei spiegato bene, solo che non stai usando l'applicativo come si dovrebbe usare, pertanto non hai capito il mio suggerimento.

    Nella tua Esposizione si evincono lacune sulla logica di strutturazione, il tuo sistema richiederebbe non un TABELLONE ma una sistema Relazionato per Paese con i relativi dati salvati su Tabelle relazionate in Molti-Molti visto che hai Molte Domande e Molti Paesi.

    La convinzione che salvando ogni volta una Tabella alleggerisca il lavoro è poco reale, non so se hai avuto modo di leggere in merito a questo o se è solo una tua idea.
    Diciamo che JET gestisce in tutti i casi MALISSIMO i dati non è un RDBMS pertanto non è dotato di un Motore che è in grado di lavorare SERVER-SIDE, quindi per tanti sforzi si facciano... c'è poco da migliorare.
    Nei DD veramente definibili RDBMS invece questa tua logica non sarebbe nemmeno da prendere in considerazione.

    Reputo necessario una lettura delle basi di Access nella forma FrontEnd-BackEnd.
    Purtroppo mi pare tu abbia la convinzione che stai operando nel modo corretto... ma così non è... di conseguenza non riesco a darti ulteriori dettagli in quanto credo manchi un pezzo dalla tua parte.
Devi accedere o registrarti per scrivere nel forum
3 risposte