Access 2010: globale Variable "aktivieren"?

Hallo zusammen,

versuche mich gerade an einer Datenbank.
Eigentlich klappt es ganz gut, doch nun ist mehr ein Fehler aufgefallen wo ich leider nicht weiss, wie ich den beheben kann.
Ich habe ein Übersichtsformular mit allen Aufträgen. Über einen Button öffnet man dann ein neues Formular mit den Details zu dem Auftrag. Dazu habe ich ein Modul, welches eine globale Variable enthält, um den entsprechenden Datensatz zu finden. Die Variable ist:

Option Compare Database
Global Datensatz As Single
Option Explicit

Beim Öffnen des Formulars wird dann der Datensatz gesucht:

Private Sub Form_Load()
Auftrag.SetFocus
DoCmd.FindRecord [Datensatz]
Me.frm_Unterformular_Auftrag.Form.Filter = „Auftrag =’“ & Me!Auftrag & „’“

Problem ist jetzt folgendes. Wenn ich die Datenbank frisch öffnen, funktioniert dies nicht. Mir wird immer der erste Auftrag angezeigt.

Wenn ich jetzt einmal das Modul mit meiner Variablen öffne und wieder schliesse funktioniert alles wie es soll, es wird der richtige Auftrag rsaugesucht. Woran kann dies liegen??? Muss ich das Modul erst irgendwie aktivieren? Oder die globale Variable schon irgendwie falsch? Leider kein Experte, sondern learning bei doing…

Vielen Dank schonmal!

MfG

Hallo,

zunächst kommt mir Global Datensatz As Single spanisch vor. Warum „Single“?

Zur Frage: eine globale Variable, so sie denn in einem Standardmodul deklariert ist (und irgendwann irgendwo definiert/gesetzt wird), ist nur solange gültig/vorhanden, bis die Access-Sitzung beendet wird. D. h, die Variable (und deren Wert) sind nur im Arbeitsspeicher der Access-Instanz vorhanden.

Soll der Wert dauerhaft, also über Access-Sitzungen hinweg, beibehalten werden, so muss entweder der Wert in einer Tabelle oder als (hinzugefügte) benutzerdefinierte Eigenschaft (user property) der Access-Applikation gespeichert werden.

Gruß
Franz,DF6GL

Hallo,

ueblicherweise ist das Vorgehen fuer dein Problem ein ganz anderes…

Vorausgesetzt die Detaildatensaetze haben eine eindeutige ID, dann uebergibt man das Selektionskriterium im Open-Aufruf des Formulars.

Das mit der Globalen variable ist umstaendtlich, langsam und fehleranfaellig

z.B. DoCmd.OpenForm „frmAuftragdetails“, acNormal, , "ID_von_Auftrag = " & Wert_aus_ListeAuftraege, acFormEdit

Und wenn die Verknuepfungen im Auftragsformular zu etwaigem Unterformular sauber definiert sind braucht man weiter nichts zu codieren.

Tschau
Peter

Hallo,

ich glaube, das Problem liegt nicht am Öffnen der Detaildatensätze (das ich im Übrigen mit einem verknüpften Unterformular lösen würde) , sondern darin, nach einem Neustart der DB gleich auf dem zuletzt angezeigten (Auftrags)-Datensatz zu stehen…

Gruß
Franz, DF6GL

zunächst kommt mir Global Datensatz As Single spanisch
vor. Warum „Single“?

Hm, jetzt hab ich mal Single durch String ersetzt (die Zahl ist als Text formatiert da SAP Export) und nun geht’s auch…