Access 2007 Split Form VBA: acNewRec auf offenen verhindert durch Form Tabbing - wirkt wie das erste Feld nicht ‚ausgewählt‘

StackOverflow https://stackoverflow.com/questions/4047422

Frage

Ich hoffe, jemand kann mir helfen, oder zumindest helfen herauszufinden, dieses Problem zu umgehen.

Ich verwende Access 2007 gespaltene Form-Funktion und haben Sie den Code unten läuft auf der Form_Open Veranstaltung sowie nach zwei button_click Veranstaltungen. Der Code funktioniert gut, wenn nach den button_click Ereignisse laufen, aber wenn es auf dem Form_Open Ereignis läuft, verursacht es Probleme.

Wenn Formular geöffnet wird und Benutzer gibt Text im ersten Feld, kann er / sie nicht Tab oder Maus verwenden, um das nächste Formularfeld auszuwählen. Der Benutzer wird auf dem ersten Formularfeld fest, bis Esc Drücken die Dateneingabe zu löschen. Um erfolgreich Daten in dem ersten Formularfeld einzugeben, wenn das Formular geöffnet wird, muss ein Benutzer zuerst eine anderes Formularfeld auszuwählen, und dann erneut auswählen das erste Formularfeld dann Text im ersten Formularfeld eingeben. Nach diesem Unsinn, kann der Benutzer mit Tab oder Maus nächstes Formularfeld auszuwählen. Dies muss einmal jedes Mal durchgeführt werden, das Formular gestartet wird. Der gleiche VBA-Code auf den button_click Ereignissen funktioniert gut.

Bemerkenswert: Wenn das Formular zum ersten Mal geöffnet wird, NONE der Formularfelder im Datenblatt Abschnitt des Formulars erscheinen ‚Ausgewählt‘. Wenn ein Benutzer beginnt, Daten in dem ersten Formularfeld einzugeben, der ‚neuen Datensatz‘ Markierung (*) bewegt sich zu der zweiten Reihe, wie es sollte, aber die erste Zeile zeigt die Daten nicht eingegeben wird. Dieses Verhalten ist seltsam.

Nach dem klaren Bereich durchgeführt wird, ein anderes Feld, klicken Sie auf, um erste Feld Abhilfe zurück oben beschrieben, das Datenblatt zeigt richtig ausgewählte Felder und Daten, wie sie eingegeben wird.

Irgendwelche Ideen? Ist das ein Fehler? Gibt es eine einfache Abhilfe, wie die Feldauswahl Abhilfe über VBA in Form offen aufzutreten?

Jede Hilfe ist sehr willkommen.

Code:

DoCmd.ApplyFilter , "([Contractor].[CheckOutStamp] Is Null)"
DoCmd.GoToRecord , "", acNewRec

Link zu mdb: https://docs.google.com/leaf?id=0B-jx09cwIQDsYWM2MzMzMDQtYjUzNi00N2E5LWFjYTktNzFiYWYzMDZiYWU1&hl = en & authkey = CPPmoMEF

War es hilfreich?

Lösung

Einige Gedanken:

Versuchen Sie es von OnOpen zu OnLoad bewegen. Die Ereignisse in OnOpen kann passieren, bevor die Daten tatsächlich geladen wird, wo als OnLoad nach passiert, dass ist bereits getan.

Auch möchten Sie vielleicht nur die Form der Filter-Eigenschaft auf [Contractor].[CheckOutStamp] Is Null gesetzt und die FilterOn auf Ja, und das Formular Dataentry gesetzt, das heißt, es standardmäßig einen neuen Rekord bei offenen und nicht lädt eine der ältere Aufzeichnungen. Sobald es geöffnet ist, können Sie den Edit / Add-Modus, was Sie wollen die Form ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top