PDA

Vollständige Version anzeigen : Verknüpfung auf verknüpfte Tabellen ?


TGA_Project
08.05.2001, 10:57
Hallo,

ich habe eine Kunden-Datenbank in eine Frontend- und Backend-DB aufgeteilt. Nun habe ich die BE-Tabellen in der FE-DB verknüpft. Auch eine VBA-Funktion für die automatische Neuverknüpfung geschrieben - alles kein Problem.

Jetzt befinden sich aber in der BE-DB bereits verknüpfte Tabellen (für Echtzeitzugriff), die ich in der FE-DB brauche. Blöderweise bietet mir A97 beim Verknüpfen nur ECHTE Tabellen der BE-DB an. Die bereits verknüpften kann man nicht auswählen.

Also scheint eine Verknüpfung auf bereits verknüpfte Tabellen nicht zu funktionieren.

Hat jemand einen Tip oder Rat, wie ich vom Frontend an die verknüpften Tabellen in der Backend-DB drankomme. Jedesmal einen "Import" der Tabellen ist nicht drin, dafür sind sie zu gross.

Danke im Voraus,
Mario !

A.S.
08.05.2001, 11:07
Hallo Mario,

die in der BE verknüpften Tabellen müssen ja auch eine Quelle haben. Verknüpfe diesen in den FE.

cu

Arno

TGA_Project
08.05.2001, 11:15
Hallo Arno,

wenn es bloß so einfach wäre. Der Sinn und Zweck der FE-/BE-Geschichte ist es ja, Updates des Frontends bzw. Programmes einfach durch das Drüberkopieren beim Kunden zu erreichen. Da das Produktivsystem beim Kunden aber andere Laufwerke und VZe hat als bei uns, darf die Quelle in in der FE verknüpft sein. Ich kann dem Kunden nicht zumuten, jedesmal die Verknüpfungen selbst nachzuholen.

Wenn ich die Tabellen in der FE verknüpfen würde, klappen die Zugriffe beim Kunden nicht. Meine bisherige Routine zum neuverknüpfen der Tabellen setzt die BE-DB einfach im gleichen VZ voraus. Das geht ohne weiteres, aber die anderen Daten liegen auf den Systemen in unterschiedlichen Verzeichnissen bzw Laufwerken.

FPietsch
08.05.2001, 11:53
Hallo,

also mit dem Verknüpfen der FE mit BE ist das doch eigentlich ganz einfach. Ich mach das so:

1. Bei der Erstinstallation des FE habe ich noch keine Tabellen eingebunden. Das stelle ich im Start-Formular per VBA fest und öffne dann eine Konfigurations-Tabelle, die im FE angesiedelt ist. Da fordere ich den Anwender auf, den Pfad seiner BE einzutragen (Kann man mit File Suchen noch verschönern). Somit ist die FE für die folgende Verknüpfungsfunktion für immer vorbereitet. Wenn du jetzt eine zweite BE hast, deren Daten auch noch eingebunden werden müssen, schreib eben einen 2. Pfad in die 2. Zeile der Konfigurationstabelle.

Für alle folgenden Aufrufe des FE sind nun die BE´s (aus der Konfigurationstabelle) dem FE bekannt. Der Anwender wird ja die BE nicht dauernd hin- und herschieben, sondern sie doch sicherlich an der gleichen Stelle belassen.

Ein FE-Update lieferst du dann wieder ohne Einbindung der BE aus - weiter s. o.

Bei mir läuft das wunderbar.

Gruß

f.p.

TGA_Project
08.05.2001, 12:09
@FPietsch

An sich wollte ich diese Sache umgehen, dass der Kunde die BE-DB auswählen muss. Deswegen ja die Voraussetzung, dass die BE im gleichen Verzeichnis liegt. Aber letztlich wird es wohl darauf hinauslaufen, dass ich einen Öffnen-Dialog anzeigen muss, wo der Kunde nach dem Update die BEs neu auswählen muss.

Dachte nur, dass es vielleicht einen kleinen Trick gibt, Access die Sache beizubringen.

Danke !

FPietsch
08.05.2001, 12:38
Hallo,

was mir noch dazu einfällt:

wenn die Namen der BE bekannt sind, könnte man mit einem Modul im Startformular die BE suchen lassen mittels FileSearch-Objekt und bei Erfolg die Tabellen einbinden.

Vielleicht hilfts.

Gruß

franz

marmic55
08.05.2001, 12:42
Hallo, alle zusammen

Während der DB-Entwicklung verknüpfe ich bei mir lokal alle Tabellen, die die Anwendung benötigt.
So wird dann auch die DB ausgeliefert. Beim Programmstart, und zwar beim ersten Anfordern von Daten, fange ich den Fehler (3024 / 3044 usw.) ab. Es wird ein CommonDialog (kein OCX, davon bin ich ab) geöffnet.
In diesem Dialogformular sucht der Anwender den Pfad und klickt die Datei an.
Die bestehenden Tabellenverknüpfungen werden dann aktualisiert.

Ich habe vor einiger Zeit mal 2 kleine Datenbanken (ohne jegliches 'PillePalle') erstellt -FE / BE mit Demo der Verknüpfungsaktualisierung-.

Diese könnte ich mal bei Bedarf heute Abend von zu Hause aus zumailen (o. gleich an Arno).

Michael

TGA_Project
08.05.2001, 13:23
@marmic55

also machst Du es wie "FPietsch" mit einem Dialog, in dem der User selbst die Zieldateien auswählt. Na gut, dann mache ich es eben so, zwar nicht 100%ig (völlig automatisch über 1 (!) BE wäre am besten) aber allemal besser als manuell über Access selbst.

Über die Demo würde ich mich freuen, muss ich mir die Sache nich nocheinmal genauer anschauen. Ich nehme Dein herzlichen Angebot an ;-)

Schick mir Deine Demo doch bitte an "mario.mazet@starke.de" - danke !!

CU, Mario !

TGA_Project
08.05.2001, 14:19
@marmic55

Herzlichen Dank für die Demo... hier per Posting, da Dein Chef nachher noch meine Antwort liest ;-)) Werde es mir mal in Ruhe anschauen.

Meine Seite angeschaut ? Oh je, der Officebereich ist doch noch im Aufbau...

------------------
Entstehende Heimat für Programmierer: www.devsource.de (http://www.devsource.de)

Ashley
08.05.2001, 15:04
So kannst Du die Verknuepften Dateien aus Deinem Backend auch in Deinem Frontend verknuepfen. Gerade getestet (A97):

Public Function GetLinkedTable()

Dim wsp As Workspace
Dim db As Database
Dim dbC As Database
Dim tdf As TableDef
Dim tdfNew As TableDef
Set wsp = DBEngine.Workspaces(0)
Set db = wsp.OpenDatabase("C:\DeinPfad\DeineMDB.mdb")
Set dbC = CurrentDb

For Each tdf In db.TableDefs
If tdf.Connect <> "" Then
Set tdfNew = dbC.CreateTableDef(tdf.Name)
tdfNew.SourceTableName = tdf.SourceTableName
tdfNew.Connect = tdf.Connect
dbC.TableDefs.Append tdfNew
End If
Next tdf
dbC.TableDefs.Refresh

End Function


Ashley

TGA_Project
08.05.2001, 15:50
@Ashley

HURRRAAA !! Das ist die PEFEKTE Lösung für dieses Problem. Vielen Dank. In Kombination mit der Routine von "marmic55" stehen nun der FE-/BE-Anwendung endlich nichts mehr im Weg.


@marmic55

Deien Routine packt die verknüpften Tabellen in der BE nicht - haut mit Fehlern á la "Tabelle nicht verfügbar" (nur sinngemäß wiederholt) raus. Auf die gleiche Weise habe ich die FEs und BEs auch bereits verknüpft - ist wohl der allgemein bekannte Weg per VBA.

@beide:

Wenn ich aber unsere drei Routinen kombiniere, kann ich nunmehr alle Verknüpfungen vollständig automatisch (ohne jegliche Benutzerdialoge etc...) neu verknüpfen. GENIAL !!


Super, ihr habt meinen Glauben an Access mal wieder gerettet ;-)

DANKE !!

------------------
Entstehende Heimat für Programmierer: www.devsource.de (http://www.devsource.de)