Condividi tramite

refresh link tabelle excel collegate

Anonimo
2016-03-18T10:32:35+00:00

Buongiorno a tutti,

file accdb con collegate tabelle Excel.

Ho trovato in rete esempio di codici per aggiornare il percorso delle tabelle collegate da file mdb ed ho provato a riadattarlo per tabelle Excel così:

    Dim Tdf As DAO.TableDef

    Dim Db As DAO.Database

    Set Db = CodeDb

    Set Tdf = Db.TableDefs("Nome Tabella Excel")

    Tdf.Connect = ";DATABASE=D:\NuovaCartella\NomeFileExcel.xlsm"

    Tdf.RefreshLink

    Set Tdf = Nothing

    Set Db = Nothing

Ovviamente l'adattamento è incompleto in quanto si blocca alla riga Tdf.RefreshLink e presenta l'errore "Formato di database non riconosciuto".

Cosa manca al codice per ricollegare tabelle Excel?

In "Gestione tabelle collegate" ho visto che, per ogni collegamento, il percorso del file Excel termina indicando anche la scheda del file Excel "es.  (D:\NuovaCartella\NomeFileExcel.xlsm\Foglio1$). Come faccio in vba a passargli il foglio al quale puntare del file Excel?

Vi ringrazio, Max.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-03-20T10:33:23+00:00

ciao Max,

prova nel seguente modo, personalizzando il fullPathXlsFile del file di xls.

public Sub linkXlsfiles()

On Error GoTo errorHandler

    Dim tdf As DAO.TableDef

    Set tdf = CurrentDb.CreateTableDef("miaTabellaXLS")

    tdf.Connect = "Excel 12.0 Xml;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\fullPathXlsFile.xlsx"

    tdf.SourceTableName = "foglio1$"

    CurrentDb.TableDefs.Append tdf

ext_errorLoadHandler:

    Set tdf = Nothing

    Application.RefreshDatabaseWindow

    Exit Sub

errorHandler:

    With Err

        Select Case Err

            Case 3012

                 VBA.MsgBox "tabella:" & tdf.Name & " già esistente", vbCritical, "Warning"

            Case Else

                MsgBox "ERR#" & .Number _

                & vbNewLine & .Description _

                , vbOKOnly Or vbCritical

        End Select

        Resume ext_errorLoadHandler

     End With

End Sub

ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2016-03-21T07:37:53+00:00

    Buongiorno Sandro, gentilissimo.

    Ti ringrazio e buona giornata.

    Max.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento