Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Funktionsaufruf nach dem Öffnen des Formulares

Begonnen von Beate1953, März 23, 2015, 13:33:15

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

ich möchte nach dem Öffnen eines Formulares eine Funktion aufrufen, die eines der Steuerelemente des Formulares verwendet. Wenn ich die Funktion am Ende von Form_Open aufrufe, bekomme ich laufend Fehlermeldungen, weil das Formular noch nicht offen ist und er nicht auf das Steuerelement zugreifen kann. Ich bräuchte also für den Funktionsaufruf ein Ereignis, das erst eintritt, wenn das Formular wirklich offen ist. Ich habe schon alle möglichen Ereignisse ausprobiert, habe aber kein passendes gefunden. Bei den Ereignissen "Bei Laden", "Bei Aktivierung" etc ist das Formular bei mir noch nicht offen.

Was kann ich da tun?

Vielen Dank im Voraus
Beate1953

el_gomero

Hallo Beate,

das Open-Event sollte schon das richtige sein. Wie lautet denn der Code der Funktion, die abgearbeitet werden soll?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
ich glaube, "Beim Öffnen" ist noch zu früh.
Ich tippe eher auf "Beim Laden"

Ereignisreihenfolge:
Öffnen
Laden
Größenänderung
Aktivieren

Wie schon gefragt, was macht die Funktion und soll diese bei jedem Datensatz ausgeführt werden? Oder nur einmalig ?
Gruß Klaus

Beate1953

Hallo,

die Funktion wird aus verschiedenen Formularen aufgerufen, die alle u.a. die Felder Barcode und Bezeichnung enthalten. Am Schluss der Funktion habe ich die folgenden Codezeilen:

IF ......Then
      Forms(Screen.ActiveForm.Name)!Barcode.Value = Nummer
      Forms(Screen.ActiveForm.Name)!Bezeichnung.SetFocus
     
Else
       Forms(Screen.ActiveForm.Name)!Barcode.SetFocus
End If


Normalerweise rufe ich die Funktion vom bereits geöffneten Formular per Button auf, was auch prima klappt. Nun möchte ich, dass die Funktion gleich nach dem Öffnen des Formulares aufgerufen wird. Das Problem ist m.E. dass nach Form_Open das Formular noch nicht auf dem Bildschirm sichtbar ist (Nach "Bei Laden" und "Bei Aktivieren" ebenfalls) und folglich Screen.ActiveForm den Fehler 2465 "MS Access kann das in ihrem Ausdruck angesprochene Feld 'Barcode' nicht finden" bringt.

Kann ich vielleicht das, was ich mit Screen.ActiveForm erreichen wollte, nämlich, dass die Nummer in das Feld Barcode des jeweils aktuellen Formulares eingetragen wird, evtl. auch auf andere Weise erreichen, ohne Screen.ActiveForm verwenden zu müssen, so dass es mit dem Ereignis "Bei Laden" klappt.

Viele Grüße
Beate1953

DF6GL

Hallo,

für solche Sachen ist eigentlich der Openargs-Parameter bei der Openform-Methode vorgesehen...

Prinzipiell:

Docmd.Openform "frmMeinForm",,,,,Me!Barcode


und im Form:

Sub Form_Load()
If not IsNull(Me.Openargs) Then
Me!Barcode = Me.Openargs
End If
End Sub
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access