Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tabella Excel collegata: modificare collegamento da VBA

947 views
Skip to first unread message

giuliano....@gmail.com

unread,
Dec 30, 2012, 7:45:11 AM12/30/12
to
Buongiorno a tutti.
La situazione è questa: ho un database che mi collega i dati provenienti da un foglio excel ( listino.xls ) con le relative schede prodotto in pdf.
Funziona tutto, il solo problema è che devo poter modificare da vba il percorso di collegamento alla cartella dove c'è il file listino.xls .
Ho già una procedura simile che mi imposta la cartella dove il codice poi và a cercare le varie schede. Il percorso ( fino alla cartella ) viene memorizzato in una variabile globale chiamata Path.
Come ho fatto con i pdf così vorrei fare con il collegamento della tabella excel ( nomi delle colonne uguali ai campi del database ma numero record in tabella variabile ).
Attualmente ho impostato il collegamento " manuale " e tutto funziona a meraviglia, il problema è che devo dare l' applicazione anche ad altre persone e quindi non è detto che il path da utilizzare sia lo stesso del mio.
Sono in confusione, ho la sensazione che mi stò perdendo in un bicchiere d' acqua.
Avendo già la procedura che mi fornisce il percorso della cartella di riferimento e me lo memorizza in una variabile globale la cosa dovrebbe essere semplice ma, onestamente, non mi riesce proprio.
Grazie a chi mi mi può dare una mano.
G.

Karl Donaubauer

unread,
Jan 4, 2013, 12:53:20 PM1/4/13
to
giuliano....@gmail.com wrote:
> La situazione � questa: ho un database che mi collega i dati
> provenienti da un foglio excel ( listino.xls ) con le relative schede
> prodotto in pdf.
> Funziona tutto, il solo problema � che devo poter modificare da vba
> il percorso di collegamento alla cartella dove c'� il file
> listino.xls .
> Ho gi� una procedura simile che mi imposta la cartella dove il codice
> poi v� a cercare le varie schede. Il percorso ( fino alla cartella )
> viene memorizzato in una variabile globale chiamata Path.
> Come ho fatto con i pdf cos� vorrei fare con il collegamento della
> tabella excel ( nomi delle colonne uguali ai campi del database ma
> numero record in tabella variabile ).
> Attualmente ho impostato il collegamento " manuale " e tutto funziona
> a meraviglia, il problema � che devo dare l' applicazione anche ad
> altre persone e quindi non � detto che il path da utilizzare sia lo
> stesso del mio.
> Sono in confusione, ho la sensazione che mi st� perdendo in un
> bicchiere d' acqua.
> Avendo gi� la procedura che mi fornisce il percorso della cartella di
> riferimento e me lo memorizza in una variabile globale la cosa
> dovrebbe essere semplice ma, onestamente, non mi riesce proprio.

Vai nella finestra immediata e vedi cosa ti d� questo codice:

?Currentdb.TableDefs("NomeTabella").Connect

Dovrebb'essere qualcosa come

Excel ...;HDR=...;IMEX=...;DATABASE=c:\foo\listino.xls

dove i ... dipendono dalla versione di Office e altre impostazioni.
"c:\foo\listino.xls" sarebbe il percorso e nome del file di Excel
che devi aggiornare con il valore della tua variabile.

Il codice per aggiornalo potrebb'essere circa:

Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim strFullPath As String
Dim strPos As Long

Set db = CurrentDb
Set tdf = db.TableDefs("NomeTabella")

strFullPath = TuaVariabileGlobale & "listino.xls"
'se nella variabile manca l'ultima barra devi includerla
'strFullPath = TuaVariabileGlobale & "\listino.xls"

strPos = InStr(tdf.Connect, ";DATABASE=") + 10

If Mid(tdf.Connect, strPos) <> strFullPath Then
tdf.Connect = Left(tdf.Connect, strPos - 1) & strFullPath
tdf.RefreshLink
End If

--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it


0 new messages