Buongiorno a tutti.
Spero che qualcuno possa darmi un suggerimento/soluzione ad un problema su cui sto sbattendo la testa da 2 settimane.
Ho creato un DB access che con un po' di codice, esegue macro, copia dati su file excel, aggiorna pivot....insomma fa tante belle cosine che se no avrei dovuto fare a manina.
Siccome ora la versione è quasi "definitiva", volevo darla anche ai miei colleghi, senza però vincolarli a salvare il DB in una determinata cartella.
Quindi ho scritto un po' di codice che in automatico all'apertura, confronta la cartella dove si trova attualmente il DB con un percorso che salvo su un file TXT, e, se diverso, aggiorno i path delle tabelle collegate.
Fin qui tutto bello. Peccato che nel DB, per comodità, oltre a delle tabelle Excel per cui il codice va benissimo, ho collegato anche dei file ".csv", che sono in una cartella "input", e che i miei colleghi andranno a sostituire man mano che escono i dati nuovi con dei nuovi csv che chiameranno sempre allo stesso nome.
Di seguito il codice: i primi 2 file che sono .xlsx vanno via che è una meraviglia. Poi ho 5 .csv (di cui vi posto uno solo per comodità), e tutti e 5 mi danno "Errore di run-time '3044': 'C:\percorsogiusto\Fatture_Scadute.csv' non è un percorso valido."
Eppure il percorso è corretto, e testato anche con gli altri file excel che sono stati aggiornati correttamente....
Per favore aiutatemi o cadrò in depressione !
Dim percorso As String
percorso = CurrentProject.Path
'Trovo in che cartella è stato copiato il DB
Dim File
Set oFSO1 = CreateObject("Scripting.FileSystemObject")
File = percorso & "\utilità\Percorso.txt"
Set oTXT = oFSO1.OpenTextFile(File, 1, True)
Line = oTXT.ReadLine
'Carico il percorso originario del DB
If Line <> percorso Then
Dim tdf As DAO.TableDef
Dim Db As DAO.Database
Set Db = CurrentDb()
Set tdf = Db.TableDefs("GiorniMese")
tdf.Connect = "Excel 12.0 Xml;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=" & percorso & "\utilità\Mese_Giorni.xlsx"
tdf.RefreshLink
Set tdf = Db.TableDefs("Racc_Rating_Testo")
tdf.Connect = "Excel 12.0 Xml;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=" & percorso & "\utilità\Raccordo Rating testo.xlsx"
tdf.RefreshLink
Set tdf = Db.TableDefs("Fatture_Scadute")
tdf.Connect = "Text;HDR=YES;FMT=TabDelimited;DATABASE=" & percorso & "\input\Fatture_Scadute.csv"
tdf.RefreshLink