Compartir a través de


Método TableDef.RefreshLink (DAO)

Se aplica a: Access 365, Access 2021, Access 2019, Access 2016

Actualiza la información de conexión para una tabla vinculada (sólo áreas de trabajo de Microsoft Access).

Sintaxis

expresión . RefreshLink

expression Variable que representa un objeto TableDef.

Comentarios

Para cambiar la información de conexión para una tabla vinculada, restablezca la propiedad Connect del objeto TableDef correspondiente y utilice el método RefreshLink para actualizar la información. El uso del método RefreshLink no cambia las propiedades de la tabla vinculada ni los objetos Relation.

Para que esta información exista en todas las colecciones asociadas con el objeto TableDef que representa la tabla vinculada, debe utilizar el método Refresh en cada colección.

A partir de access 365 versión 2403, el método RefreshLink conserva los índices de tabla existentes. Si anteriormente tenía una tabla vinculada que perdería la clave principal después de ejecutar el método RefreshLink y agregó código para volver a crear explícitamente el índice después de RefreshLink, ahora se producirá el error 3283, "La clave principal ya existe".

Ejemplo

En este ejemplo se utiliza el método RefreshLink para actualizar los datos de una tabla vinculada después de cambiar la conexión de un origen de datos a otro. Se requiere el procedimiento RefreshLinkOutput para que pueda ejecutarse este procedimiento.

Sub RefreshLinkX() 
 
 Dim dbsCurrent As Database 
 Dim tdfLinked As TableDef 
 
 ' Open a database to which a linked table can be 
 ' appended. 
 Set dbsCurrent = OpenDatabase("DB1.mdb") 
 
 ' Create a linked table that points to a Microsoft 
 ' SQL Server database. 
 Set tdfLinked = _ 
 dbsCurrent.CreateTableDef("AuthorsTable") 
 
 ' Note: The DSN referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 tdfLinked.Connect = _ 
 "ODBC;DATABASE=pubs;DSN=Publishers" 
 tdfLinked.SourceTableName = "authors" 
 dbsCurrent.TableDefs.Append tdfLinked 
 
 ' Display contents of linked table. 
 Debug.Print _ 
 "Data from linked table connected to first source:" 
 RefreshLinkOutput dbsCurrent 
 
 ' Change connection information for linked table and 
 ' refresh the connection in order to make the new data 
 ' available. 
 
 ' Note: The DSN referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 tdfLinked.Connect = _ 
 "ODBC;DATABASE=pubs;DSN=NewPublishers" 
 tdfLinked.RefreshLink 
 
 ' Display contents of linked table. 
 Debug.Print _ 
 "Data from linked table connected to second source:" 
 RefreshLinkOutput dbsCurrent 
 
 ' Delete linked table because this is a demonstration. 
 dbsCurrent.TableDefs.Delete tdfLinked.Name 
 
 dbsCurrent.Close 
 
End Sub 
 
Sub RefreshLinkOutput(dbsTemp As Database) 
 
 Dim rstRemote As Recordset 
 Dim intCount As Integer 
 
 ' Open linked table. 
 Set rstRemote = _ 
 dbsTemp.OpenRecordset("AuthorsTable") 
 
 intCount = 0 
 
 ' Enumerate Recordset object, but stop at 50 records. 
 With rstRemote 
 Do While Not .EOF And intCount < 50 
 Debug.Print , .Fields(0), .Fields(1) 
 intCount = intCount + 1 
 .MoveNext 
 Loop 
 If Not .EOF Then Debug.Print , "[more records]" 
 .Close 
 End With 
 
End Sub