Dieses Beispiel aktualisiert mit der RefreshLink-Methode die Daten in einer verknüpften Tabelle, nachdem die Verbindung von einer Datenquelle zu einer anderen geändert wurde. Die Prozedur RefreshLinkOutput wird zum Ausführen der Prozedur benötigt.
Sub RefreshLinkX()
Dim dbsCurrent As Database
Dim tdfLinked As TableDef
' Datenbank öffnen, der eine verknüpfte Tabelle
' angefügt werden kann.
Set dbsCurrent = OpenDatabase("DB1.mdb")
' Verknüpfte Tabelle erstellen, die auf eine
' Microsoft SQL Server-Datenbank verweist.
Set tdfLinked = _
dbsCurrent.CreateTableDef("Autorentabelle")
tdfLinked.Connect = _
"ODBC;DATABASE=Verleger;UID=sa;PWD=;DSN=Verleg er"
tdfLinked.SourceTableName = "Autoren"
dbsCurrent.TableDefs.Append tdfLinked
' Inhalt der verknüpften Tabelle anzeigen.
Debug.Print _
"Daten aus einer verknüpften Tabelle anzeigen, " & _
"die mit der ersten Quelle verbunden ist:"
RefreshLinkOutput dbsCurrent
' Verbindungsinformationen der verknüpften Tabelle
' ändern und die Verbindung aktualisieren, um die
' neuen Daten verfügbar zu machen.
tdfLinked.Connect = _
"ODBC;DATABASE=Verleger;UID=sa;PWD=;DSN=NeueVerleg er"
tdfLinked.RefreshLink
' Inhalt der verknüpften Tabelle anzeigen.
Debug.Print _
"Daten aus einer verknüpften Tabelle anzeigen, " & _
"die mit der zweiten Quelle verbunden ist:"
RefreshLinkOutput dbsCurrent
' Verknüpfte Tabelle löschen, da dies
' ein Beispiel ist.
dbsCurrent.TableDefs.Delete tdfLinked.Name
dbsCurrent.Close
End Sub
Sub RefreshLinkOutput(dbsTemp As Database)
Dim rstRemote As Recordset
Dim intCount As Integer
' Verknüpfte Tabelle öffnen.
Set rstRemote = _
dbsTemp.OpenRecordset("Autorentabelle")
intCount = 0
' Recordset-Objekt durchlaufen, aber nach 50
' Datensätzen anhalten.
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 , "[weitere Datensätze ]"
.Close
End With
End Sub
|