Salve a tutti,
ho il seguente problema. Ho creato una macro su VBA (registrata) che importa dati da una Microsoft Query (che apre un Database Access ed importa i dati da una tabella presente all'interno). Adesso ho il seguente problema: avendo registrato la macro, il
percorso diviene automaticamente il seguente...
_________________________________________________________________________________________________________________________________________________________
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=C:\Users\Matteo\Desktop\Cost Management Tool\CostDatabase.accdb;DefaultDir=C:\Users\Matteo\Desktop\C" _
), Array( _
"ost Management Tool;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
)), Destination:=Range("$AA$3")).QueryTable
.CommandText = Array( _
"SELECT GERMANY.Day_, GERMANY.Amount_, GERMANY.Category_, GERMANY.Description_" & Chr(13) & "" & Chr(10) & "FROM C:\Users\Matteo\Desktop\Cost Management Tool\CostDatabase.accdb.GERMANY GERMANY" & Chr(13) & "" & Chr(10) & "WHERE (GERMANY.Description_='COGS"
_
, "')" & Chr(13) & "" & Chr(10) & "ORDER BY GERMANY.Day_")
__________________________________________________________________________________________________________________________________________________________
Come potete vedere, il percorso da cui accede al file Access è DBQ=C:\Users\Matteo\Desktop\Cost Management Tool\CostDatabase.accdb e la directory di default è DefaultDir=C:\Users\Matteo\Desktop\C" _
), Array( _
"ost Management Tool
In realtà, il file Excel ed il file Access sono all'interno della stessa Directory, dunque (per far funzionare l'applicazione su ogni computer) all'interno della macro VBA su Excel vorrei
sostituire la stringa C:\Users\Matteo\Desktop\Cost Management Tool
con qualcosa tipo ThisWorksheet.Path. Il problema è che questa istruzione in VBA, per questa applicazione, non funziona e credo sia dovuto al fatto che si interagisca con una query.
Qualcuno sa dirmi come risolvere il problema? Grazie a tutti in anticipo!