IMPORTAZIONE DATI DA EXCEL

di il
19 risposte

IMPORTAZIONE DATI DA EXCEL

Ciao a tutti

ho un quesito riguardo all'importazione di un file excel (ho creato un template apposito) in access tramite un pulsante inserito in una maschera

La tabella di destinazione è la seguente:
tblTerreni
idterreno
iddocumento
idcomune
Per quanto riguarda l'idterreno questo è presente nel file template ma è vuoto in quanto si autoincrementa appena viene importata la riga di excel.
Anche l'iddocumento è vuoto nel template perché a seguito dell'importazione viene eseguita una query di aggiornamento che va ad indicare l'iddocumento presente nella maschera.
L'unica cosa, quindi, che dovrei importare è l'idcomune.

Qui c'è un problema. Nel file in excel viene indicato il comune per intero e non l'id, pertanto a seguito dell'importazione, ovviamente, non m'importa quel dato!

Aggiungo che nel db è presente una tabella con tutti i comuni italiani il cui idcomune è di tipo testo ed è costituito da 4 caratteri relativi al codice catastale

Esempio: Torino = L219

Secondo voi, mi conviene aggiungere un campo "Comune" nella tblTerreni, in seguito fare un dlookup automatico nella maschera di inserimento dati e una volta eseguito il dlookup eseguire una query di aggiornamento andando ad eliminare i dati del campo comune (per evitare dati rindondanti?
O mi conviene creare una tabella di appoggio e poi da quella trasferire i dati che mi interessano seguendo lo stesso criterio di prima?

Grazie mille in anticipo

19 Risposte

  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    Qui c'è un problema. Nel file in excel viene indicato il comune per intero e non l'id, pertanto a seguito dell'importazione, ovviamente, non m'importa quel dato!

    Aggiungo che nel db è presente una tabella con tutti i comuni italiani il cui idcomune è di tipo testo ed è costituito da 4 caratteri relativi al codice catastale
    Come ti regoli per Comuni "omonimi"?
    http://www.comuni-italiani.it/nomi/omonimi
    Il solo NomeComune non è sufficiente per identificarlo univocamente.
  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    ...viene indicato il comune per intero e non l'id
    Immagino che tu non abbia alcun potere per far modificare il formato di acquisizione, altrimenti avresti scelto diversamente, credo.
    Ho una brutta esperienza con i nomi dei Comuni, io.
    Come viene generato il file da cui importare i dati? O meglio: il comune è scritto sempre nello stesso modo o è suscettibile di "errore umano"? (in senso lato, dall'errore macroscopico all'ignoranza sulla corretta denominazione)
    Faccio un esempio un po' tirato per il collo, giusto per rendere l'idea: "Castel d'Azzano". Ignoriamo per ora maiuscole e minuscole. Sarà sempre "Castel d'Azzano" o potrebbe comparire come "Castel d Azzano", "Casteldazzano" e via dicendo?
    Chi è stato il genio a consentire di dare lo stesso nome a due comuni diversi? Ma non ha pensato al caricamento in un database!!!
  • Re: IMPORTAZIONE DATI DA EXCEL

    OsvaldoLaviosa ha scritto:


    Marcdreamer ha scritto:


    Qui c'è un problema. Nel file in excel viene indicato il comune per intero e non l'id, pertanto a seguito dell'importazione, ovviamente, non m'importa quel dato!

    Aggiungo che nel db è presente una tabella con tutti i comuni italiani il cui idcomune è di tipo testo ed è costituito da 4 caratteri relativi al codice catastale
    Come ti regoli per Comuni "omonimi"?
    http://www.comuni-italiani.it/nomi/omonimi
    Il solo NomeComune non è sufficiente per identificarlo univocamente.
    I dati mi comparirebbero in una maschera che comunque sarebbe modificabile (nella maschera è presente un campo non associato che mi farebbe vedere la provincia) ... attualmente, io importo i dati che riesco ad importare e modifico manualmente il comune (essendo l'unico dato che, come specificato prima, non riesco ad importare per ovvie ragioni).
    Il problema è che può capitare di dover importare/modificare anche più di 100 terreni (intesi come particelle catastali) e modificare manualmente tutti questi terreni verrebbe ad essere oneroso in termini di tempo.
    Come viene generato il file da cui importare i dati? O meglio: il comune è scritto sempre nello stesso modo o è suscettibile di "errore umano"? (in senso lato, dall'errore macroscopico all'ignoranza sulla corretta denominazione)
    Rispondo anche a te Phil. I terreni vengono prelevati da un database regionale pertanto son quasi convinto che non ci siano errori di battitura (ma non si sa mai) .... il problema di questo db regionale di cui mi servo per lavoro è che non mi crea i documenti da far stampare alle aziende associate.
    Pertanto, prima creo il documento ufficiale nel db regionale, esporto i dati nel file in excel e da li tramite pulsante li importo nel mio db. In questa maniera, posso creare il documento che poi le aziende dovranno firmare

    Spero di aver risposto alla tua domanda
  • Re: IMPORTAZIONE DATI DA EXCEL

    A) Stai dicendo che il discorso è circoscritto nella tua regione e non ci sono errori di battitura. Se ti vuoi fidare di questi "soli" dati, puoi anche pensare di creare una query con linea di join sui campi idcomune<===>NomeComune. Ma sii consapevole che questa "prassi" non può essere "universale".

    B) Il file Excel, oltre idcomune non ha anche un campo Provincia? Se sì, la query da implementare dovrebbe avere 2 linee join, oltre la prima già detta al punto A), la seconda che collega i 2 campi Provincia.
  • Re: IMPORTAZIONE DATI DA EXCEL

    OsvaldoLaviosa ha scritto:


    A) Stai dicendo che il discorso è circoscritto nella tua regione e non ci sono errori di battitura. Se ti vuoi fidare di questi "soli" dati, puoi anche pensare di creare una query con linea di join sui campi idcomune<===>NomeComune. Ma sii consapevole che questa "prassi" non può essere "universale".

    B) Il file Excel, oltre idcomune non ha anche un campo Provincia? Se sì, la query da implementare dovrebbe avere 2 linee join, oltre la prima già detta al punto A), la seconda che collega i 2 campi Provincia.
    il db su cui lavoro è regionale ma i dati catastali vengono presi direttamente dal catasto ... pertanto o il catasto è sbagliato in partenza o non ci sono errori di compilazione dei comuni.

    Anche se la maggior parte dei terreni sono siti in Piemonte è possibile avere anche terreni siti in altre regioni.

    il file in excel non ha il campo provincia.

    Non capisco però il punto A. Dal momento che il tipo di campo è diverso non posso fare una join tra idcomune (testo, 4 caratteri) e comune (testo, 255 caratteri).

    Quello che pensavo di fare era questo:
    - importo il comune : esempio Torino;
    - Nella maschera, dopo l'importazione, viene eseguita una query di aggiornamento: I terreni importati vengono aggiornati con l'iddocumento (esempio : 1) e l'IDCOMUNE diventa (L219);
    - In seguito, viene fatto un requery della maschera e visualizzo così i seguenti dati: IDDOCUMENTO (1); IDCOMUNE (L219) "campo non visibile"; COMUNE (Torino); PROVINCIA (TO) - nel caso mi riporta una provincia diversa modificherei manualmente il dato;
    - In seguito, al click del pulsate "conferma", salverei i dati e poi farei eseguire una query di aggiornamento in cui vado ad eliminare le voci inserite nel campo "COMUNE" in quanto sarebbe un'inutile rindondanza di dati (essendo già presenti nella tblComuni)

    Volevo sapere se è corretta la maniera in cui mi sto muovendo.
  • Re: IMPORTAZIONE DATI DA EXCEL

    Io rilevo un po' di confusione...o per lo meno io ho capito così:
    tblTerreni.idcomune (da Excel) è un campo testo (es. Torino)
    poi però dici che tale campo è di 4 caratteri.

    Puoi raccontare come è descritto un record di tblTerreni in Excel (caso Torino) e i corrispondenti campi-valori nella tabella Comuni che hai nel tuo database?
  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    I terreni vengono prelevati da un database regionale pertanto son quasi convinto che non ci siano errori di battitura (ma non si sa mai)
    Te lo dico con (quasi) cognizione di causa che non ci sarebbe da stupirsi di nulla ma insomma... un database regionale in cui i Comuni sono identificati (solo) per denominazione e non con una codifica (ce ne sono fin troppi, a volte, di codici applicabili univocamente ai Comuni) è proprio ... è proprio un NON database. E' un elenco di dati ma non una "base di dati".
    Sicuro sicuro sicuro che non si possa estrarre (anche) per codice? O che almeno ti assicurino che viene inserito tramite un codice o da un elenco standardizzato e non lasciato alla libera digitazione. Hai a disposizione il loro "elenco dei comuni"?
    Il tutto per vedere se si tratta di impostare una accurata bonifica o se fare una "semplice" integrazione di quanto ricevi.
    Altrimenti puoi andare sul sicuro e preparare una procedura di bonifica che può andar sempre bene.

    Marcdreamer ha scritto:


    ...
    - In seguito, viene fatto un requery della maschera e visualizzo così i seguenti dati: IDDOCUMENTO (1); IDCOMUNE (L219) "campo non visibile"; COMUNE (Torino); PROVINCIA (TO) - nel caso mi riporta una provincia diversa modificherei manualmente il dato;
    - In seguito, al click del pulsate "conferma", salverei i dati e poi farei eseguire una query di aggiornamento in cui vado ad eliminare le voci inserite nel campo "COMUNE" in quanto sarebbe un'inutile rindondanza di dati (essendo già presenti nella tblComuni)
    Questa parte non l'ho capita (o forse ho la testa già inquadrata al sistema che avevo in mente e non ne concepisco un altro)
    Lascia stare per ora il codice del documento, pensiamo al Comune.
    Quanto conosci eventualmente VBA?
  • Re: IMPORTAZIONE DATI DA EXCEL

    Philcattivocarattere ha scritto:


    Te lo dico con (quasi) cognizione di causa che non ci sarebbe da stupirsi di nulla ma insomma... un database regionale in cui i Comuni sono identificati per denominazione e non con una codifica (che ne sono fin troppi, a volte, di codici applicabili univocamente ai Comuni) e proprio ... è proprio un NON database. E' un elenco di dati ma non una "base di dati".
    Sicuro sicuro sicuro che non si possa estrarre (anche) per codice?
    Pienamente d'accordo con queste osservazioni.
  • Re: IMPORTAZIONE DATI DA EXCEL

    OsvaldoLaviosa ha scritto:


    Io rilevo un po' di confusione...o per lo meno io ho capito così:
    tblTerreni.idcomune (da Excel) è un campo testo (es. Torino)
    poi però dici che tale campo è di 4 caratteri.

    Puoi raccontare come è descritto un record di tblTerreni in Excel (caso Torino) e i corrispondenti campi-valori nella tabella Comuni che hai nel tuo database?
    Allora,

    le tabelle sia in excel che in access sono identiche:

    IDTERRENO; IDDOCUMENTO; IDCOMUNE; COMUNE (campo inserito solo stamane).

    Ho inserito il campo comune in maniera tale che dal db regionale (che ripeto prende i dati dal catasto) è un db ufficiale della regione Piemonte (non sono in grado di vedere i codici sotto, ma sicuramente, per rispondere a Phil, il tutto viene gestito tramite i codici catastali - a noi utenti finali, viene semplicemente fatto visualizzare solo il nome del comune)

    Sotto il campo comune in excel inserisco (in realtà li copio appunto dall'altro db) i comuni: esempio Torino

    Al click del tasto "Importa" viene fatta l'importazione dei dati di excel, a questo punto viene fatta una query di aggiornamento per andare ad indicare l'iddocumento presente nella maschera aperta e per aggiornare l'idcomune (viene inserito l'idcomune relativo al comune importato)
    Quanto conosci eventualmente VBA?
    Non posso dire di essere un esperto, ma qualcosa sicuro riesco a fare
  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    db regionale (che ripeto prende i dati dal catasto) è un db ufficiale della regione Piemonte
    Bon, dai, secondo me si può andare con un paio di click semplici e il resto si può "sistemare a mano" perché credo che non ci saranno molti errori (in teoria nemmeno uno)

    Marcdreamer ha scritto:


    Sotto il campo comune in excel inserisco (in realtà li copio appunto dall'altro db) i comuni: esempio Torino
    No, no, non dire così che non ci capisco più niente.
    Lascia stare ora le tue tabelle, template, access o excel. Come estrai i dati dal database regionale? Ti arrivano in formato xls(x), csv, xml? Che campi riguardanti il comune ci sono?
  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    le tabelle sia in excel che in access sono identiche:

    IDTERRENO; IDDOCUMENTO; IDCOMUNE; COMUNE (campo inserito solo stamane).
    Questo in Access è concettualmente sbagliato.

    Marcdreamer ha scritto:


    ho un quesito riguardo all'importazione di un file excel (ho creato un template apposito) in access tramite un pulsante inserito in una maschera

    La tabella di destinazione è la seguente:
    tblTerreni
    idterreno
    iddocumento
    idcomune
    
    Per quanto riguarda l'idterreno questo è presente nel file template ma è vuoto in quanto si autoincrementa appena viene importata la riga di excel.
    Anche l'iddocumento è vuoto nel template perché a seguito dell'importazione viene eseguita una query di aggiornamento che va ad indicare l'iddocumento presente nella maschera.
    L'unica cosa, quindi, che dovrei importare è l'idcomune.
    Io devo essere sincero sincero. Senza un esempio di dati concreti che partono/arrivano da Excel e devono confluire in tabella di Access...non ho capito quello che devi fare.
  • Re: IMPORTAZIONE DATI DA EXCEL

    Prova a postare un file di esempio, sia access che excel da importare, sostituendo eventuali dati sensibili e forse si riesce a capire e aiutarti.
  • Re: IMPORTAZIONE DATI DA EXCEL

    OsvaldoLaviosa ha scritto:


    Marcdreamer ha scritto:


    le tabelle sia in excel che in access sono identiche:

    IDTERRENO; IDDOCUMENTO; IDCOMUNE; COMUNE (campo inserito solo stamane).
    Questo in Access è concettualmente sbagliato.
    Allora, ti chiedo Osvaldo: come faresti tu ad accodare in una tabella di access il cui campo è costituito dal Codice Catastale lo specificato comune della tabella in Excel??
    Un'altra domanda: quindi, i campi del file in Excel dovrebbero essere differenti rispetto a quelli in Access? Secondo quale logica?
    Lascia stare ora le tue tabelle, template, access o excel. Come estrai i dati dal database regionale? Ti arrivano in formato xls(x), csv, xml? Che campi riguardanti il comune ci sono?
    Per rispondere a Phil ... magari ci fosse la possibilità di esportazione. Io faccio un "semplice" copia ed incolla

    Di seguito l'esempio di una serie di terreni che copio in Excel ed in seguito importo in Access
    dbterreni.JPG
    dbterreni.JPG

    Mi sono accorto che c'è anche la provincia nel file in excel. Tramite uno stringa.estrai separo il comune dalla provincia e li metto in due celle distinte

    Stifone ha scritto:


    Prova a postare un file di esempio, sia access che excel da importare, sostituendo eventuali dati sensibili e forse si riesce a capire e aiutarti.
    Appena ho un attimo, vedo di postare sia il file access che il file in excel
  • Re: IMPORTAZIONE DATI DA EXCEL

    Marcdreamer ha scritto:


    Mi sono accorto che c'è anche la provincia nel file in excel. Tramite uno stringa.estrai separo il comune dalla provincia e li metto in due celle distinte
    Oppure puoi fare una query che prende i campi della tua tabella in Access "Comuni", poi aggiungi un campo calcolato dove concateni stringaComune, stringaProvincia comprese pure le parentesi. Poi metti a confronto questi campi-valori. Da ciò risali facilmente al Codice del Comune.
Devi accedere o registrarti per scrivere nel forum
19 risposte