Tabelle zur Laufzeit verknüpfen

Hallo Profis,

gibt es eine Möglichkeit in Access eine Tabelle zur Laufzeit (dynamisch) zu verknüpfen ?
Pfad usw. sind bekannt, es geht um Foxpro Tabellen.

Für Ideen schon mal danke im Voraus,

Robert

Hallo Robert!

gibt es eine Möglichkeit in Access eine Tabelle zur Laufzeit
(dynamisch) zu verknüpfen ?
Pfad usw. sind bekannt, es geht um Foxpro Tabellen.

Ja, gibt es. Welche Variante hättest Du gerne:

  1. Tabellen zum Entwurf erstmalig verknüpfen, Link dynamisch anpassen?
  • Über alle Tabellen rüberlaufen, Connect-String entsprechend setzen und RefreshLink aufrufen
  1. Tabellen neu erzeugen beim Programmstart?
  • Foxpro-DB öffnen, über CreateTable (oder so) verknüpfte Tabellen erzeugen und Connect setzen

VB-Details, sofern benötigt, auf Nachfrage…

Gruß, Manfred

VB-Details, sofern benötigt, auf Nachfrage…

Gruß, Manfred

Danke erstmal für die schnelle Antwort.
Die Tabelle die verknüpft werden soll ist immer dieselbe Struktur, allerdings in verschiedenen Ordnern, demzufolge bräuchte nur der Ort der Datei verändert werden über VB.
Wenn Du da ein Codeschnipsel haben solltest wäre das supernett.

Grüße,

Robert

Hallo, Robert!

Danke erstmal für die schnelle Antwort.
Die Tabelle die verknüpft werden soll ist immer dieselbe
Struktur, allerdings in verschiedenen Ordnern, demzufolge
bräuchte nur der Ort der Datei verändert werden über VB.
Wenn Du da ein Codeschnipsel haben solltest wäre das
supernett.

Anbei mal ein Sniplet:

Sub TabellenEinbinden(pstrQuelle as string)
 dim dbExt as database
 dim tdfExt as tabledef

 set dbExt=currentdb
 ' Alle Tabellen aus Datenquelle einbinden
 For Each tdfExt In dbExt.TableDefs
 If Not tdfExt.Name Like "MSys\*" Then
 if tdfext.connect"" then
 ' nur bereits eingebundene Tabellen verarbeiten
 tdfext.connect=";DATABASE="& pstrquelle
 ' hier kannst Du ggf. auch den kompletten Connect-String
 ' übergeben und dann ";DATABASE="& weglassen
 ' ;DATABASE=C:\TEST\Daten.mdb würde das bei einer gleich-
 ' namigen Access-Tabelle heißen; wie der Connect-String bei
 ' Deiner Datenbank aussieht, weiß ich nicht. Daher am besten
 ' manuell setzen, bei der Zuweisung oben einen Breakpunkt 
 ' setzen ([F9]) und vorher den Connect-String anzeigen lassen
 ' (oder über Eigenschaften der verbundenen Tabelle). Genauere
 ' Infos siehe Connect-Eigenschaft
 tdfExt.Refreshlink
 ' hier sollte ggf. der Fehler abgefangen werden, der auftritt,
 ' wenn DB oder Tabelle in der DB fehlen.
 endif
 End If
 Next tdfExt
end sub

Wie immer ungetestet/uncompiliert. So in etwa sollte es laufen.

Gruß, Manfred

’ setzen ([F9]) und vorher den Connect-String anzeigen
lassen
’ (oder über Eigenschaften der verbundenen Tabelle).
Genauere

Herzlichen Dank für die bisherige Mühe.
Ich habe das jetzt mal probiert, weiß aber nicht, wie ich mir den Connect String anzeigen lasse…

Da steh ich momentan auf dem Schlauch…

Grüße,

Robert

Hallo, Robert!

Ich habe das jetzt mal probiert, weiß aber nicht, wie ich mir
den Connect String anzeigen lasse…

Verknüpfte Tabelle im Entwurf öffnen, die komische Abfrage mit „Ja“ beantworten. Dann über Ansicht-Eigenschaften die Eigenschaften anzeigen lassen, und das, was in Beschreibung steht, ist der Connect-String.

Alternativ in meinem Code einen Haltepunkt auf die Zeile „…Connect=…“ setzen und den Code ausführen. Bei der Unterbrechung ins Direktfenster gehen und dort „? tdfExt.Connect“ eintippen.

Gruß, Manfred

Superklasse, Du bist mein persönlicher Held, ich habs jetzt verstanden und kann tatsächlich den Verknüpfungs-Link zur Laufzeit ändern.

Vielen Dank für Deine Megahilfsbereitschaft,

Grüße,

Robert