Newsgroup: it.comp.appl.access
Titolo: Importare records da miliardi di file excel...

Ciao a tutti, chiedo aiuto qui perchè altrimenti non saprei proprio a
chi rivolgermi... Ovviamente vi ringrazio in anticipo sia che sappiate
aiutarmi sia che non possiate far niente per la mia situazione disperata...
Allora la situazione è la seguente: ho recuperato un archivio (per cosi
dire) composto da circa un migliaio di fogli excel distinti uno dall'altro. 
Non basta, il genio che li ha creati, li ha creati nel seguente modo
(esempio): cella a17 nome, cella c 17 cognome, cella a19 indirizzo,
cella c19 CAP etc. 
L'unica fortuna che ho, per cosi' dire, e' che la struttura rimane
invariata per tutti e 1000 i files, ossia: il nome è sempre contenuto
nella cella a17, l'indirizzo nella a19, il cap nella c19 e cosi' via per
tutti e 1000 i fogli.
Vorrei sapere se esiste un modo, secondo voi, per importare tutti i
fogli excel in un'unica tabella in modo tale che i dati siano
congruenti, ossia avere 1000 records con nome, cognome, indirizzo e cap 
senza dover passare 2 anni a inserire valori a mano...
Grazie in anticipo,
Elio
 


nulla di impossibile
se i file sono tutti nella stessa cartella puoi fare una routine che 
1)scandisce la cartella
2)apre ogni file via vba
3)recupera i valori delle tre celle e li carica in una nuova riga della 
tua tabella
4)chiude il file
 
puoi sfruttare le librerie excel usabili da vba
 
quale dei 4 punti descritti non sapresti fare?
ciao
BFS

 ha scritto:

Onestamente? nessuno dei 4. Fin quando si tratta di strutturare qualcosa
ex-novo non ho problemi, ma con vba sono decisamente molto arrugginito.
Se hai un esempio pratico che possa riadattare al volo te ne sarei
immensamente grato altrimenti mi metto con pazienza e vedo che riesco a fare.
Ciao e grazie della risposta,
He
 
 


di fatto non ho nulla ma trovi spunto qui per fare le varie cose
 
1)
http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba
 
 
 
2)
http://www.access-programmers.co.uk/forums/showthread.php?t=170493
 
 
3)
http://forum.html.it/forum/showthread/t-533329.html
 
 
nulla di difficile
ciao
 
 
 
 
 


Innanzi tutto grazie!
Andiamo per passi...
A stanotte ero riuscito, tramite il codice sottostante, a ciclare tutti i
fogli excel in una data cartella.
Ecco il codice:
 
 
Dim strFile As String
 
    DoCmd.SetWarnings False
 
'   Set file directory for files to be imported
    strPath = "C:\import\"
'   Tell it to import all Excel files from the file directory
    strFile = Dir(strPath & "*.xls*")
 
'   Start loop
    Do While strFile <> ""
        ' Import file
        DoCmd.TransferSpreadsheet transfertype:=acImport,
tablename:="DataImported", FileName:=strPath & strFile, HasFieldNames:=False,
Range:="A10:C10"
 
        ' Loop to next file in directory
        strFile = Dir
    Loop
 
    MsgBox "All data has been imported.", vbOKOnly
 
End Sub
 
Il codice funziona egregiamente.
I limiti del codice sopra citato sono evidenti: posso importare un range di
celle, ma se volessi importare celle sparpagliate (C17, E19,D221) la cosa e'
piu' complessa e sicuramente meno corretta da un punto di vista procedurale.
(potrei moltiplicare il docmd.transferspreadsheet N volte per il numero di
celle necessarie ma la cosa e' evidentemente non corretta).
Per cui ho buttato un'occhio al punto 3 da te segnalato ma non mi pare di aver
trovato niente che possa aiutarmi (o magari piu' probabilmente c'e' e non l'ho
capito...).
Se hai tempo/modo/voglia di spiegarmi sarei felice; in ogni caso grazie per il
tempo e i suggerimenti (nel frattempo, ci studio su)!
Ciao,
He
 


 
per ciclarli ok...
ma non devi importare nulla, devi aprire il file vba, leggere le celle 
che ti interessano e scriverle nel db.
e per farlo usa questo codice
 
http://www.access-programmers.co.uk/forums/showthread.php?t=170493
 
ciao
 
 
 


Non credo di averci capito una mazza... se parliamo di aprire il file excel
credo che l'esempio possa funzionare, ma non vedo nulla inerente a leggere le
celle che mi interessano e scriverle nel db...
Dove sbaglio?
Grazie e ciao! 
 
 


https://www.google.com/search?q=vba+access+read+excel+cell&ie=utf-8&oe=utf-8
 
 
ciao

Dim oApp As Excel.Application
Dim oWsh As Excel.Worksheet
Dim RIGA As Integer, COLONNA As Integer
 
Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Open CARTELLA & "\" & NOMEFILE
Set oWsh = oApp.ActiveWorkbook.Sheets(1)
 
 
COGNOME=oWsh.Cells(RIGA, COLONNA)
....
 
oApp.ActiveWorkbook.Close
oApp.Application.Quit