› Sviluppare funzionalita su Microsoft Office con VBA › IMPORTARE FILE .DBF IN EXCEL
-
AutoreArticoli
-
Salve, quando cerco d'importare un file .DBF con la procedura carica dati esterni, da altre origini, da microsoft query, scegli origine dati, data base o query i file che hanno molte colonne (800) non vengono visualizzati nella cartella dove sono contenuti, vengono visualizzati i file con colonne fino a 255. Come posso fare per importare il file con pià di 800 colonne? Allego il file per facilitare il lavoro. E' possibile con una macro in VBA importare automaticamente i dati del file allegato? Ovviamente il file da importare viene aggiornato continuamente e quando accedo al file in excel in automatico deve importare il file aggiornato. Vi ringrazio della cortese attenzione.
Con Cordialità
Antonio Mancuso
3281046342
Buongiorno, Ti ringrazio di volermi aiutare a risolvere la mia problematica. Ho provato con 2 versioni di excel
1) Microsofr Office Professional Plus 2013 (non risco a visualizzare il file)
2) Microsoft Excel per Microsoft 365 MSO (visualizzo il file ma mi dà errore)
Grazie ancora
Allegati:
You must be logged in to view attached files.ciao
attenzione che il tuo non e' un file DBF ma un file di OpenOffice (calc) e se lo apri con questi ti mostra tutte le colonne 831 comprese nel file
penso che excel anche l'ultima versione importa solo 256 colonne anche se a disposizione ne a di piu' ma gli sviluppatori di excel non hanno considerato di importare tali colonne in quanto non era contemplato tale misura prima dei 8 bit
ti riposto il tuo file salvato con la versione di openoffice non in versione DBF e vedrai che con excel lo apri normalmente
ciao
Allegati:
You must be logged in to view attached files.Ti ringrazio, ma a me interessa importare automaticamente, all'apertura del file in excel, i dati del file D02_DF.DBF (che fa parte di un database che viene continuamente aggiornato). A me interessa che all'apertura del file in excel in modo automatico importi nei vari fogli diverse tabelle .DBF con i dati aggiornati, perchè il file Excel contiene molte formule che rielabora i dati dei vari fogli. In pratica a me interessa importare automaticamente, anche con il codice VBA, in un foglio Excel i dati del file D02_DF.DBF. E' possibile importare il file con la procedura con la procedura carica dati esterni, da altre origini, da microsoft query, scegli origine dati, data base o query come per altri file .DBF oppure visto che ha molte colonne è necessario imnportarlo con il codice VBA?
ciao, come mister x sono riuscito a decomprimere il file che giustamente è stato creato in OpenOffice(calc) e a portarlo su un foglio vuoto di excel semplicemente con il trascinamento del file. Ma tu non vuoi questo 🙂 ma un programma in codice vba che in automatico ti faccia una serie di cose anche, se ho ben capito, interagire tra excel e calc. Tutto ciò non è semplice, tu che conoscenze hai di vba? Hai fatto qualche bozza da farci vedere?
Max
Concordo con #mabolsie
Penso che qualcosa si possa tentare...
Ma avere un "ibrido" Openoffice ed Excel è davvero cercarsi grane!
Ciao
Paolo
Sub Macro2()
'
' Macro2 Macro
''
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=GESPEDATI;UID=;;SourceDB=F:\SIW\GESPE\2023\ARC\00003500;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null" _
), Array("=Yes;Deleted=Yes;")), Destination:=Range("$A$1")).QueryTable
.CommandType = 0
.CommandText = Array( _
"SELECT d02_pres.ctr_ok, d02_pres.mese, d02_pres.matr, d02_pres.cogn, d02_pres.nome, d02_pres.g01_hl, d02_pres.g01_c01, d02_pres.g01_h01, d02_pres.g01_c02, d02_pres.g01_h02, d02_pres.g01_em, d02_pres.g" _
, _
"02_hl, d02_pres.g02_c01, d02_pres.g02_h01, d02_pres.g02_c02, d02_pres.g02_h02, d02_pres.g02_em, d02_pres.g03_hl, d02_pres.g03_c01, d02_pres.g03_h01, d02_pres.g03_c02, d02_pres.g03_h02, d02_pres.g03_em" _
, _
", d02_pres.g04_hl, d02_pres.g04_c01, d02_pres.g04_h01, d02_pres.g04_c02, d02_pres.g04_h02, d02_pres.g04_em, d02_pres.g05_hl, d02_pres.g05_c01, d02_pres.g05_h01, d02_pres.g05_c02, d02_pres.g05_h02, d02" _
, _
"_pres.g05_em, d02_pres.g06_hl, d02_pres.g06_c01, d02_pres.g06_h01, d02_pres.g06_c02, d02_pres.g06_h02, d02_pres.g06_em, d02_pres.g07_hl, d02_pres.g07_c01, d02_pres.g07_h01, d02_pres.g07_c02, d02_pres." _
, _
"g07_h02, d02_pres.g07_em, d02_pres.g08_hl, d02_pres.g08_c01, d02_pres.g08_h01, d02_pres.g08_c02, d02_pres.g08_h02, d02_pres.g08_em, d02_pres.g09_hl, d02_pres.g09_c01, d02_pres.g09_h01, d02_pres.g09_c0" _
, _
"2, d02_pres.g09_h02, d02_pres.g09_em, d02_pres.g10_hl, d02_pres.g10_c01, d02_pres.g10_h01, d02_pres.g10_c02, d02_pres.g10_h02, d02_pres.g10_em, d02_pres.g11_hl, d02_pres.g11_c01, d02_pres.g11_h01, d02" _
, _
"_pres.g11_c02, d02_pres.g11_h02, d02_pres.g11_em, d02_pres.g12_hl, d02_pres.g12_c01, d02_pres.g12_h01, d02_pres.g12_c02, d02_pres.g12_h02, d02_pres.g12_em, d02_pres.g13_hl, d02_pres.g13_c01, d02_pres." _
, _
"g13_h01, d02_pres.g13_c02, d02_pres.g13_h02, d02_pres.g13_em, d02_pres.g14_hl, d02_pres.g14_c01, d02_pres.g14_h01, d02_pres.g14_c02, d02_pres.g14_h02, d02_pres.g14_em, d02_pres.g15_hl, d02_pres.g15_c0" _
, _
"1, d02_pres.g15_h01, d02_pres.g15_c02, d02_pres.g15_h02, d02_pres.g15_em, d02_pres.g16_hl, d02_pres.g16_c01, d02_pres.g16_h01, d02_pres.g16_c02, d02_pres.g16_h02, d02_pres.g16_em, d02_pres.g17_hl, d02" _
, _
"_pres.g17_c01, d02_pres.g17_h01, d02_pres.g17_c02, d02_pres.g17_h02, d02_pres.g17_em, d02_pres.g18_hl, d02_pres.g18_c01, d02_pres.g18_h01, d02_pres.g18_c02, d02_pres.g18_h02, d02_pres.g18_em, d02_pres" _
, _
".g19_hl, d02_pres.g19_c01, d02_pres.g19_h01, d02_pres.g19_c02, d02_pres.g19_h02, d02_pres.g19_em, d02_pres.g20_hl, d02_pres.g20_c01, d02_pres.g20_h01, d02_pres.g20_c02, d02_pres.g20_h02, d02_pres.g20_" _
, _
"em, d02_pres.g21_hl, d02_pres.g21_c01, d02_pres.g21_h01, d02_pres.g21_c02, d02_pres.g21_h02, d02_pres.g21_em, d02_pres.g22_hl, d02_pres.g22_c01, d02_pres.g22_h01, d02_pres.g22_c02, d02_pres.g22_h02, d" _
End SubHo effettuato la registrazione di macro per l'importazione di un file denominato d02_pres.dbf he si trova nel database F:\SIW\GESPE\2023\ARC\00003500 e mi ha indicato il codice scritto in precedenza. Il file è visibile con la procedura d'importazione: Dati, da altre origini, da microsoft query, database, visualizzo il file d02_pres.dbf contenuto nel database e successivamente automaticamemnte m'importa i dati del file in excel. Mentre il file allegato in precedenza, D02_DF.DBF, che ha molte colonne a differenza del file d02_pres.dbf che riesco a visualizzare e ad importare, non lo riesco a visualizzare con la procedura d'importazione indicata in precedenza e quindi non lo riesco ad importare. E' possibile cmodificando la macro importare automaticamente il file D02_DF.DBF
Dunque.....
L' unica cosa da cambiare dovrebbe essere il contenuto della Array: Array("SELECT D02_DF......ecc....ecc
potresti fare una prova, importa il file D02_DF parzializzandolo carica solo 255 colonne cosi vediamo se è un errore di procedura o di pesantezza del file.
Buongiorno ho provato ad eliminare colonne dal file D02_DF portandolo a 255 colonne e la procedura è funzionante (il file è visibile mentre se supera il numero di 255 colonne la procedura non lo fa visualizzare). Quindi il problema sonoil numero di colonne superiore a 255. C'è la possibilità d'importarlo con il codice VBA senza seguire la procedura d'importazione automatica di Excel?
ciao è come pensavo, scusa la domanda il tuo pc è datato? Sai quanta RAM ha?
Comunque puoi provare con il metodo copia /incolla o il trascinamento del file sul foglio attivo di excel.
Guarda questo articolo forse fa al caso tuo : https://comeaprire.com/blog/2020/10/02/file-dbf-che-cose-e-come-aprirne-uno/
Max
-
AutoreArticoli
