Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Pfad einer Tabellenverknüpfung





Frage

Ich habe bei meiner Facharbeit noch ein weiteres Problem und zwar hab ich eine Excel- Tabelle aus der per Import Daten geholt werden allerdings soll ein Lehrer die Daten später verwenden daher läuft alles über einen Button das Problem hierbei ist, dass als Pfad wenn man auf durchsuchen im verknüpfungsmanager etc geht da H://Eigene Dateien..... steht kann man irgendwie auch simpel als Verknüpfung einfach den Tabellennamen.xls haben wenn die im selben Verzeichnis is und wenn ja wie stellt man das ein 2. man kann in einer zu importierenden Tabelle keien Forneln eingeben denn dann geht das nimmer mitter Anfügeabfrage kann man das auch iwie anders regeln das das geht? danke im voraus für eure Antworten

Antwort 1 von Springmaus

wenn die Datei im selben ordner ist kannst du den Pfad der currentdb auslesen mit


CurrentDb.NAME ist der Datenbankname mit dem gesamten Pfad.

Mit dem folgenden Code kannst Du den aktuellen Pfad ermitteln:

Dim strDateiname As String
Dim strCurrentPath As String
Dim i As Integer

strDateiname = CurrentDb.NAME
i = Len(strDateiname)
' Den Pfad durchsuchen nach dem letzten Backslash
Do Until MID$(strDateiname, i, 1) = Chr$(92)
i = i - 1
Loop
' Rest zurueckgeben ohne Ende-Backslash
strCurrentPath = Left$(strDateiname, i - 1)

Gruß Marie

Antwort 2 von Springmaus

Frage 2 habe ich leider nicht verstanden

Antwort 3 von erik

Hallo Marie,

das letzte vorkommende Zeichen findest du auf Anhieb mit der InStrRev()-Funktion. Die macht das gleiche wie InStr(), sucht aber von rechts nach links. Eine Schleife wird dadurch überflüssg.

strCurrentPath= Left(CurrentDb.Name, InstrRev(CurrentDb.Name,"\")-1)


Noch einfacher geht es mit dem CodeProject-Objekt.

strCurrentPath = CodeProject.Path


Gruß
erik

Antwort 4 von judomurrat

was bringt mir der aktuelle Pfad der Datenbank

ich will einfach nur eine Verknüpfung zu einer Excel Tabelle wo anstatt H/Eigene Dateien ..... schülerliste.xls steht so dass er sich die dat aus dem aktuellen Verzeichnis zieht
wie geht das ?
ps hab vom coden keine ahnung also wenn das nur so geht dann erklärt das bitte für blöde ;)

Antwort 5 von Springmaus

Jo Erik, ich bin bissel rückständig, ich arbeite noch mit Access 97, da gibt es leider solche Sachen wie CodeProject.Path noch nicht und InstrRev gibt es auch erst ab VB6 / Access 2000. Aber da er mit Code gar nix anfangen kann, net mal reinkopieren, isses wohl egal :-)

Erklärs dus ihm für blöde :-)) Ich hab immer noch nicht genau verstanden was er ausser dem Pfad noch will.

Gruß Marie

Antwort 6 von judomurrat

also ich hab ja verstanden dass der code oben das verzeichnis der datenbnak ausliest
aber wie muss ich dass jetzt machen dass dieser pfad als pfad der tabelle genommen wird
muss ich da iwie was im verknüpfungsmanager machen oder was
srry hab echt keine ahnung davon ^^

Antwort 7 von erik

Hallo judomurrat,

deine verknüpfte Excel-Tabelle wird in Access wie jede andere Tabelle auch als TableDef-Objekt dargestellt. Jedes TableDef-Objekt hat eine Connect-Eigenschaft, die darüber Auskunft gibt, wie die Tabelle verknüpft ist. Nur verknüpfte Tabellen benutzen diese Eigenschaft, bei internen Tabellen ist sie völlig leer.

Beispiel für eine reguläre, verknüpfte Access-Tabelle:

;DATABASE=C:\MeinePfad\MeineDatenbank.mdb


Das vorangestellte Semikolon ist kein Fehler, sondern Absicht. Bei verknüpften Access-Tabellen muss nur der reine Pfad angegeben werden. Nur artfremde Tabellen (wie Excel, Textdateien usw.) müssen vorher noch eine Typdefinition aufgeführt bekommen.

Beispiel für eine verknüpfte Excel-Tabelle:

Excel 5.0;DATABASE=C:\MeinPfad\MeineTabelle.xls


Was genau noch drinsteht, müsstest du bei deiner eigenen Tabelle selbst prüfen mit der folgenden Zeile. Drücke die Tastenkombination Strg+G für das Direktfenster, füge folgende Zeile ein, trage deinen Tabellennamen ein und drücke die Eingabetaste:

? CurrentDb.TableDefs("<Hier Name der Excel-Tabelle einfügen>").Connect


Von der zurückgegebenen Zeile ist alles bis einschl. "DATABASE=" von Interesse. Alles danach muss durch einen neuen Pfad mit Dateinamen ausgetauscht werden.

Der folgende Code demonstriert den Austausch des Speicherortes einer verknüpften Tabelle. Als Parameter muss nur der Tabellenname in der Datenbank und der externe Dateiname übergeben werden:

Public Sub RefreshTableConnect(TableName As String, File As String)
	Dim db As Database
	Dim tdf As TableDef
	Dim strConnect As String
    
	Set db = CurrentDb
	Set tdf = db.TableDefs(TableName)
    
	strConnect = Left(tdf.Connect, InStr(tdf.Connect, "DATABASE=") + 8)
	tdf.Connect = strConnect & File
	tdf.RefreshLink
End Sub


Gruß
erik

Antwort 8 von judomurrat

srry aber ich krieg en laufzeitfehler 3265 mit dem ersten code also dem zum Bestimmen des Pfades

? CurrentDb.TableDefs("<Hier Name der Excel-Tabelle einfügen>").Connect

iwie Element aus der Liste nicht gefunden kp
auf jeden fall heißt die tabelle wirklich so

Antwort 9 von Teddy7

willst Du sagen, dass Deine Exceltabelle
<Hier Name der Excel-Tabelle einfügen>
ist ?

Antwort 10 von judomurrat

ne ich hab schon den richtigen tabellen namen schülerliste.xls eingetragen und trotzdem gehts net

Antwort 11 von Springmaus

aber die Zeichen <> haste nicht geschrieben?? Oder etwa doch??

Antwort 12 von Springmaus

? CurrentDb.TableDefs("schülerliste.xls").Connect

sollst Du ins Direktfenster schreiben, hast Du das ins Direktfenster geschrieben??????

Gruß marie

Antwort 13 von judomurrat

die <> naja wie soll ich sagen gggg
k bin noob srry
ich probiers jetzt gleich ma

Antwort 14 von judomurrat

och ne der laufzeitfehler kommt trotzdem noch auch wenn alles richtig is
woran kann das liegen?

Antwort 15 von erik

Hallo judomurrat,

das liegt vermutlich daran, dass die eingebundene Tabelle nicht "schülerliste.xls" heißt. Statt des Arbeitsmappennamens müsste hier vermutlich der Arbeitsblattname benutzt worden sein. Wirf einen Blick ins Datenbankfenster, bei den Tabellen steht dort der tatsächliche Name der eingebundenen Tabelle. Dem Tabellennamen muss ein Excel-Symbol vorangestellt sein, daran kannst du die richtige Tabelle erkennen.

Gruß
erik

Antwort 16 von judomurrat

hmm
da steht auch Schülerliste.xls das is en bissl komisch

Antwort 17 von judomurrat

? CurrentDb.TableDefs("Schülerliste").Connect

der Code geht damit krieg ich Verknüpfung zur Tabelle
was muss ich anschließend eingeben damit als Verzeichnis das aktuelle Verzeichnis in dem auch die Datenbank ist immer automatisch ausgewählt wird
quasi egal in welchem Verzeichnis der Ordner Studienbuch von mir mit Datenbank und Tabelle liegt der immer Verknüpfung zur Tabelle kriegt

srry bin halt en noob

gruß

Antwort 18 von judomurrat

ps. die Datei heißt Schülerliste.xls und die Tabelle in der Datenbank Schülerliste

Antwort 19 von judomurrat

hat keiner ne ahnugn ich bräuchte dringend hilfe ich muss die Facharbeit bald abgeben

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: