Ich habe einen Bericht, der Einzahlungen, mit der DepositID als Hyperlink aufgeführt. Wenn Sie auf Einzahlungs-ID klicken, wird das Einzahlungsformular für diesen bestimmten Datensatz geöffnet. Das Formular öffnet sich jedoch zu einem neuen Datensatz anstelle desjenigen, auf den der Benutzer klickt. Ich denke, es liegt daran, dass ich einen weiteren Codecode habe, der OnLoad des Formulars ausführt, das in einen neuen Datensatz übergeht, und möglicherweise nach Ausführung des OnClick-Codes ausgeführt wird.Access VBA - Offenes Formular zu bestimmten Datensatz von Bericht
OnClick von DepositID aus dem Bericht:
DoCmd.OpenForm "DepositForm", acNormal, "", "[DepositID]= " & [DepositID]
OnLoad der Form:
DoCmd.GoToRecord , , acNewRec
Ist der OnLoad Code nach dem Code OnClick ausgeführt wird, und effektiv den angegebenen Datensatz aus dem Bericht zeigt ? Nicht sicher, wie zu beheben ist.
Es gibt eine schnelle und einfache Möglichkeit, über die Möglichkeiten des Druck-Debugging zu überprüfen! Haben Sie versucht, eine 'Debug.Print'Here '' oder eine 'MsgBox" Here "' in jedem Ihrer Eventhandler zu platzieren? Geben Sie ihnen verschiedene Nachrichten und Sie werden sehen können, welche wann und in welcher Reihenfolge ausgelöst werden. Wenn OnLoad nach OnClick ausgelöst wird, können Sie es sehen. – Mikegrann
Am sichersten ist die Reihenfolge für das Öffnen des Formulars "Öffnen> Laden> Größe ändern> Aktivieren> Aktuell". Sie könnten den "Criteria" -Teil Ihres OpenForm-Aufrufs entfernen und einfach die "DepositID" an das Ende dieser Anweisung (als offene Argumente) verschieben. Dann überprüfen Sie einfach auf "Open" für offene Argumente - wenn nicht vorhanden zu neuen Datensatz. –