2009-07-01 4 views
0

OK, ich habe mehrere Steuerelemente auf einem übergeordneten Formular, zusammen mit einem Unterformular. Der Benutzer gibt Daten in das Unterformular ein. Wenn sie dann auf das Unterformular klicken, habe ich Code, um ihre Daten zu validieren. MS hat jedoch in seiner unendlichen Weisheit entschieden, den Fokus nicht so lange im Unterformular belassen zu lassen, bis der Benutzer auf ein anderes Steuerelement im übergeordneten Formular (anstelle des übergeordneten Formulars) klickt, was für den Benutzer sehr ärgerlich ist.Zugriff VBA-Teilformular-Ereignis wird nicht ausgelöst, wenn übergeordnetes Formular geklickt wurde

Grundsätzlich möchte ich nur die Daten im Unterformular überprüfen, bevor der Benutzer mit dem nächsten Steuerelement fortfahren kann, auch wenn der Benutzer auf das übergeordnete Formular selbst klickt. Ist das möglich?

Antwort

0

Ich denke, Sie müssen das Form_Click-Ereignis auf dem Hauptformular haken und etwas damit tun. Wenn Sie den Fokus auf ein Feld im Hauptformular festlegen, kann das Unterformular das Ereignis mit dem Überprüfungscode auslösen.

Wenn das nicht funktioniert, feuern den Validierungscode auf dem Unterformular manuell auf Form_Click der Hauptform wie folgt aus:

Call Forms!MainForm!Subform.Form.Validate 

es eine Weile gewesen ist, so meine Access-VB ist ein wenig rostig, YMMV.

1

Sie könnten dies wahrscheinlich für das Ereignis "OnExit" des von Ihnen verwendeten Unterformularsteuerelements tun.

Das "OnExit" -Ereignis wird im Allgemeinen ausgelöst, wenn ein Steuerelement auf dem Unterformular den Fokus für ein Steuerelement des übergeordneten Formulars verliert. Es ist nicht im Unterformular selbst vorhanden, aber es ist eines der beiden einzigen Ereignisse für das Steuerelement, das das Unterformular enthält.

Hoffe, dass hilft.

Verwandte Themen