Condividi tramite

importare dati da file csv

Anonimo
2021-03-25T10:43:40+00:00

- Win10 pro 64bit

  • Microsoft Office professional plus 2019

Buongiorno,

ancora una volta vengo a chiedere aiuto a Voi maghi di Access!

fino ad ora ho potuto realizzare il mio DB utilizzando una tabella popolata da diversi campi.

adesso alcuni di questi campi possono aggiornarli prelevando le informazioni che mi servono da un file csv che periodicamente viene fornito da un'altra fonte.

vengo e mi spiego:

nella mia tabella "TabellaMercantili" ho i seguenti campi:

[IMO] [Name] [Flag] [Vessel Type] [Built] [Note] [Commenti]

invece nel file csv ho i seguenti dati:

[IMO] [Name] [Flag] [Vessel Type] [Built] (ovviamente il file deve essere convertito in tabella inquanto i dati sono separati da virgola)

altro fattore importante è che il file csv NON contiene lo stesso numero di Mercantili che si trova nella TabellaMercantili ma in minore quantità.

pensavo di procedere in questo ordine:

  • creo una cartella "FileCSV" dove si trova il DB e li dentro carico il file csv;
  • importo i dati dal file csv "importa dati di origine in una nuova tabella del database corrente" e salvando le specifiche di importazione in modo da poterle richiamare la prossima volta che importo il file;
  • creo una query di aggiornamento.

nei primi due passaggi vado bene (cose banali) ma nella query di aggiornamento non riesco a capire come procedere!!!!

questa è la query che sto provando a far funzionare:

UPDATE TabellaMercantili LEFT JOIN TabellaCSV ON TabellaMercantili.IMO = TabellaCSV.IMO SET TabellaMercantili.IMO = [TabellaMercantili].[IMO], TabellaMercantili.Name = [TabellaMercantili].[Name], TabellaCSV.Status = [TabellaMercantili].[status], TabellaCSV.Flag = [TabellaMercantili].[Flag];

ma così facendo, per esempio, il campo [Status] viene aggioranto solo per i mercantili presenti nella [TabellaCSV] e svuotado il campo per i mercantili che sono presenti nella [TabellaMercantili]    :(

vai a capire l'arcano

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2021-03-25T21:29:14+00:00

    Ciao Ivan,

    se ho capito bene quello che vuoi fare, prova come segue:


    UPDATE TabellaMercantili INNER JOIN TabellaCSV ON TabellaMercantili.IMO = TabellaCSV.IMO SET TabellaMercantili.IMO = [TabellaCSV].[IMO], TabellaMercantili.Name = [TabellaCSV].[Name], TabellaMercantili.Flag = [TabellaCSV].[Flag], TabellaMercantili.Status = [TabellaCSV].[Status];


    David

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2021-03-26T18:29:43+00:00

    David io non so cosa dire!!!

    ieri ho testato la tua query e non mi dava il risultato sperato.

    poi ho scoperto che la relazione con la tabellamercantili e la tabellabandiere dava problemi perchè erano digitate male alcune nazioni (si lo so dovevo collegare i loro ID e non il loro nome) e adesso che ho corretto quel fattore scopro che una banalissima INNER JOIN era la soluzione a tutto??!?!?!

    sono proprio un tordo :(

    grazie mille per la pazienza

    Ivan

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni