Importare tabelle con dati correlati

di il
3 risposte

Importare tabelle con dati correlati

Ciao a tutti,
ho la necessità di importare da excel 2 tabelle correlate in relazione 1 a molti (il classico cliente e relativi ordini), mantenendo la corrispondenza dei dati.

Tab 1
IDCust (contatore)
Nome (testo)
...
Tab 2
IDOrd (contatore)
IDNome (relazione con IDtab1)
....

Il problema da risolvere è che questi file excel mi giungono da utenti diversi e che spesso hanno gli IDCust uguali, (generalmente da 1 a 10)
Ho risolto parzialmente creando delle query di accodamento, l'idea era quella di importare i dati in access creando un nuovo contatore e aggiungendo ai singoli valori del campo IDCust il valore dell'ultimo record già presente in tabella + 1.

Ho applicato la stessa strategia alla tabella ordini, ma l'intoppo è arrivato quando (e succede praticamente sempre) in Tab 1 esistono clienti che non hanno ordini, quindi la rinumerazione viene alterata sfasando i dati.
Se qualcuno ha qualche suggerimento, anche su altri metodi , ve ne sarei grato.
Grazie

Ciao

3 Risposte

  • Re: Importare tabelle con dati correlati

    Salve.
    Allora, l'approccio al D.B. sarebbe:
    Tab_Cli (la tua Tab 1) se non sbaglio

    Tab_Ord (la tua Tab2...)

    E' chiaro che non potrai sfruttare l'IdCust che proviene da Excel, in quanto NON univoco, lo importerai in un campo della Tab_Cli, ma che NON è ne contatore e ne univoco, ma solo un campo per avere il valore presente nel foglio di Excel,
    Invece, nella Tab-Cli, avrai un suo [Id_Cli] che potrà essere contatore univoco...

    Ora, come gestirai però il solito cliente nelle varie diverse importazioni...?! io vedo questa difficoltà, non si può mica svuotare e riempire la [Tab_Cli] ogni volta...!?! c'è da vedere la gestione di questa cosa, nel senso che quando ti arriva una nuova 'Tab 1', bisognerebbe avere un meccanismo tale che aggiungesse solo i nuovi clienti e non quelli che già ci sono...?!.

    Altra cosa, è quella di avere 2 capi univoci per relazionare l'Ordine, al Cliente e anche quì non la vedo molto bene, in quanto a come hai scritto non mi sembra che nelle tabelle excel native/che ti arrivano, ci sia e quindi la vedo dura...
    Non so se fosse possibile attraverso il NOME, ma una descrizione/nominativo, non è certo una chiave relazionale per eccellenza..., anzi! piena di ambiguità...
    Bisognerebbe fare una attenta analisi della cosa...
    Saluti.
  • Re: Importare tabelle con dati correlati

    Io non sono sicuro di aver capito "letteralmente" il problema.

    hangart ha scritto:


    importare da excel 2 tabelle correlate in relazione 1 a molti
    Conosco poco Excel, ma credo si parli di Fogli, piuttosto che di tabelle.
    La relazione uno-a-molti ha un significato in Access ben preciso. Esiste anche in Excel? Provo a capire da solo:
    Foglio "Clienti"
    Foglio "Ordini"
    che una volta importati in Access diventano relative tabelle in relazione uno-a-molti. Vero?
    Immagino che in Ordini (foglio) esiste il richiamo dell'IDCust, ma...

    hangart ha scritto:


    Il problema da risolvere è che questi file excel mi giungono da utenti diversi e che spesso hanno gli IDCust uguali
    ...che significa?
    1) Il foglio Clienti arriva da un utente, mentre Ordini da un altro utente?
    2) 10 fogli Clienti e 5 fogli Ordini arrivano da utente1, poi 15 fogli Clienti e 8 fogli Ordini da utente2, 8 fogli Clienti e 3 fogli Ordini da utente3...ecc?
    3) Il tuo è solo un problema momentaneo di passaggio da Excel a Access, oppure ti si ripresenterà ancora in quanto ricevi continuamente questi dati da utenti diversi, i quali continuano a usare fogli Excel per inviarti dati?

    Scusate la pignoleria, ma non voglio azzardare risposte sbagliate.
  • Re: Importare tabelle con dati correlati

    Grazie ad entrambi per le vostre risposte/domande.

    premetto che l'attuale configurazione in excel è provvisoria , ma durerà ancora a lungo (almeno fino a quando non avremo una network più efficente ).
    I fogli excel in questione sono 3 (nello stesso file):
    "ListaClienti", "ListaProdotti" , "clienti/ordini"

    Sia ListaClienti, sia ListaProdotti possiedono una colonna calcolata autoincrementante, quindi è possibile aggiungere nuovi clienti o prodotti. Il foglio "Clienti/ordini" per ogni riga (che possiede a sua volta una colonna autoincrementante) richiama tramite menu a tendina sia la lista clienti che la lista prodotti, realizzando una relazione "uno a molti" (seppur molto grezza)

    Nel frattempo,
    Ho risolto il problema dell'importazione creando delle funzioni che verificano l'ultimo record nella relative tabelle di access (ordini, clienti , prodotti) e tramite query di accodamento genero un ID che aggiunge il valore dell'utimo ID ad ogni nuovo record accodato.

    Per ora sembra funzionare, sto ancora testando dei casi limite.
    Grazie ancora
Devi accedere o registrarti per scrivere nel forum
3 risposte