MS-Access-Formular - Neuer Rekord auf öffnen und nach dem speichern Datensatz

In Bezug auf meine Frage hier gepostet:

MS Access-Formular, in dem Benutzername ausgewählt ist aus der Liste

Ich habe ein Formular erstellt, verwendet, wie ein Mitarbeiter Zeit Blatt. Benutzer, doppelklicken Sie auf das Formular und ein weiteres Formular öffnet sich, wo Sie wählen Sie Ihren Benutzernamen aus einer combo-box und die wichtigste Zeit, die Blatt-form lädt, die speziell für Ihren Benutzernamen. Sie sind in der Lage, neue Datensätze hinzufügen, und auch Ihre früheren Veröffentlichungen durch scrollen durch die "Vorherigen" und "Nächsten" Datensätze.

Jedoch, wenn ein Benutzer öffnet die form, die Ihre letzten Datensatz zeigt. Auch, wenn ein neuer Datensatz gespeichert wird, wird dieser neue Datensatz wird weiter angezeigt, es sei denn, ein Benutzer klickt auf "Neuer (leerer) Datensatz" - button.

Kann mir jemand helfen, ändern Sie den VBA-code in der form zu ermöglichen:
1) Einen leeren Datensatz, um automatisch zu laden, wenn das Formular geöffnet wird
2) Einen leeren Datensatz, um automatisch zu laden, wenn ein neuer Datensatz gespeichert/geändert.

Dies ist die pop-up-Fenster - Formular, das erscheint, wenn Sie wählen Sie die wichtigsten Daten Anmeldeformular:

MS-Access-Formular - Neuer Rekord auf öffnen und nach dem speichern Datensatz

Dies ist der code, der hinter dem pop-up-form (oben):

Private Sub Form_Current()
If VBA.Strings.Len(txtUN & "") = 0 Then DoCmd.OpenForm "frm_UserName", acNormal, , , , acDialog
If VBA.Strings.Len(txtUsername & "") = 0 Then txtUsername = txtUN
End Sub

 Private Sub Form_BeforeUpdate(Cancel As Integer)


   Dim ctl As Control

   On Error GoTo Err_BeforeUpdate


   If Me.Dirty Then

      If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
              "Save Record") = vbNo Then
         Me.Undo
      End If
   End If

Exit_BeforeUpdate:
   Exit Sub

Err_BeforeUpdate:
   MsgBox Err.Number & " " & Err.Description
   Resume Exit_BeforeUpdate

End Sub

Dies ist die Haupt-Daten-Eintrag-Formular [Fach - Arbeitszeittabellen-Eintrag]:

MS-Access-Formular - Neuer Rekord auf öffnen und nach dem speichern Datensatz

Dies ist der code, der hinter der [Fach - Arbeitszeittabelle Eintrag] form:

Option Compare Database

Private Sub cboUserName_AfterUpdate()
   Forms![Specialist - Timesheet Entry].txtUN = cbousername
   Forms![Specialist - Timesheet Entry].Filter = "user_full_name = '" & cbousername & "'"
   Forms![Specialist - Timesheet Entry].FilterOn = True
      'Forms![Specialist - Timesheet Entry].Requery
      'DoCmd.Close

End Sub
Private Sub Form_Unload(Cancel As Integer)
  If (VBA.Strings.Len(cbousername & "") = 0) Then
     MsgBox "You must supply a user name before proceeding.", , "ERROR: Missing Info."
     Cancel = True
  End If
End Sub  

Einmal die [Fach - Arbeitszeittabelle Eintrag] ausgewählt wird, [form_UserName] erscheint. Sie müssen wählen Sie einen Benutzernamen aus der Liste aus, und drücken Sie die "X" - Taste. Sobald die "X" - Taste ausgewählt ist, als die Dateneingabe-Formular [Fach - Arbeitszeittabelle Eintrag] wird angezeigt für einen Benutzer, geben Sie die notwendigen Felder aus. Ich bin auch auf der Suche für die Benutzer nicht haben, um drücken Sie die "X" Taste, um zu initiieren, die [Fach - Arbeitszeittabelle Eintrag] bilden. Idealerweise einmal wählt der Benutzer den Benutzernamen aus der Dropdown-Liste in dem pop-up -, möchte ich, dass das Formular automatisch schließen und erzeugen der [Fach - Arbeitszeittabelle Eintrag] bilden.

Versuchen DoCmd.GoToRecord , , acNewRec für neue Rekorde. Setzen Sie diese On Load und wenn der Nutzer will, um den Datensatz zu speichern, müssen Sie behandeln die Yes Teil, indem Sie versuchen, indem Sie den code in dort auch. Ich bin iffy über den Mich.Dirty code.
wenn ich den vorgeschlagenen code bekomme ich einen Laufzeitfehler 2424. "Der von Ihnen eingegebene Ausdruck enthält einen Feld -, Steuerelement-oder Eigenschaftennamen, die MS Access nicht finden." Wenn ich auf "Debuggen" klicken, dieser code ist in rot hervorgehoben If VBA.Strings.Len(txtUsername & "") = 0 Then
ich habe auch versucht, diesen code: DoCmd.RunCommand acCmdRecordsGoToNew und es ist das selbe Problem.
der code, den Sie oben angegeben ist der gleiche code, die Sie mir in einer anderen Frage hatte ich gefragt, aber für einige Grund diese situation wirft eine Laufzeit.
Versuchen Sie, um zu Debuggen. If VBA.Strings.Len(txtUsername & "") = 0 Then MsgBox("An erorr was caught") End If

InformationsquelleAutor JT2013 | 2014-07-29

Schreibe einen Kommentar