Frontend und Backend per VBA trennen
Jörg
Gesendet: 27.04.15 13:02
Betreff: Frontend und Backend per VBA trennen


New user

Beiträge: 4

Hallo,

ich benutze Access2007.
Ich habe ein Frontend für eine große Anzahl an Benutzern erstellt, welches je nach Benutzergruppe auf verschiedene Backends zugreift.
Beim Laden eines Anzeigeformulars erstelle ich eine Tabellenverknüpfung zum entsprechenden Backend und nachdem die Daten zur Anzeige kommen, lösche ich die Verknüpfung zur Backend-tabelle wieder.
Ich möchte erreichen, dass das Backend unmittelbar nach dem Laden der Daten in das Formular wieder freigegeben wird (um es z.B. gegen ein BE mit aktuelleren Daten auszutauschen).
Bei der von mir verwendeten Methode wird das BE jedoch nicht nach dem Laden der Daten wieder freigegeben, sondern erst nach Schließen des Formulars.
Das System soll sowohl unter Access als auch Runtime funktionieren.
Wo steckt der Fehler?

Hier mein verwendetes Script:

Dim nutzergruppe
nutzergruppe = "1"

'Prüfung, dass Tabelle noch nicht vorhanden ist, ggf. löschen
If DCount("*", "MsysObjects", "Name = 'Gesamttabelle' and type = 6") > 0 Then
DoCmd.DeleteObject acTable, "Gesamttabelle"
End If
Do Until DCount("*", "MsysObjects", "Name = 'Gesamttabelle' and type = 6") = 0
Loop

'Verknüpfung als externe Tabelle erstellen
DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ext_Filer\Freigabe\data_" & nutzergruppe & ".mdb", acTable, "Gesamttabelle_" & nutzergruppe, "Gesamttabelle", False

Do Until DCount("*", "MsysObjects", "Name = 'Gesamttabelle' and type = 6") = 1
Loop

'Daten für das Formular laden
Me.RecordSource = "SELECT Feld1, Feld2, Feld3 FROM Gesamttabelle order by Feld1;"


'Verknüpfung zur externen Tabelle löschen
If DCount("*", "MsysObjects", "Name = 'Gesamttabelle' and type = 6") > 0 Then
DoCmd.DeleteObject acTable, "Gesamttabelle"
End If
Do Until DCount("*", "MsysObjects", "Name = 'Gesamttabelle' and type = 6") = 0
Loop


Jörg
Top of the page Bottom of the page