Comment utiliser VBA pour ajouter un nouvel enregistrement dans MS Access?

Je suis en utilisant les formulaires liés à l'utilisateur de mettre à jour l'information sur des clients nouveaux ou existants. Actuellement, j'utilise un Ajout de Nouveau Enregistrer une macro sur le bouton "soumettre" (parce que je ne suis pas sûr de la façon d'ajouter ou d'enregistrer un nouveau record grâce à VBA).

J'ai ajouté un avant l'événement de mise à jour (à l'aide de VBA) pour les utilisateurs de confirmer qu'ils veulent enregistrer les modifications avant de sortir de la forme. Pour certaines raisons, c'est remplacer le bouton ajouter un enregistrement et maintenant, les utilisateurs ne peuvent pas ajouter un nouvel enregistrement jusqu'à la sortie de l'formes.

Comment puis-je utiliser VBA pour ajouter de nouvelles informations client à la bonne table? Est-ce quelque chose qui devrait être fait avec des macros à la place?

Forme BeforeUpdate Code:

Private Sub Form_BeforeUpdate(Cancel As Integer) 
Dim strmsg As String 
strmsg = "Data has been changed." 
strmsg = strmsg & " Save this record?" 
If MsgBox(strmsg, vbYesNo, "") = vbNo Then 
    DoCmd.RunCommand acCmdUndo 
Else 
End If 
End Sub

Bouton Ajouter Un Enregistrement:

Private Sub btnAddRecord_Click() 
Dim tblCustomers As DAO.Recordset 

Set tblCustomers = CurrentDb.OpenRecordset("SELECT * FROM [tblCustomers]") 
tblCustomers.AddNew 
tblCustomers![Customer_ID] = Me.txtCustomerID.Value 
tblCustomers![CustomerName] = Me.txtCustomerName.Value 
tblCustomers![CustomerAddressLine1] = Me.txtCustomerAddressLine1.Value 
tblCustomers![City] = Me.txtCity.Value 
tblCustomers![Zip] = Me.txtZip.Value 
tblCustomers.Update 
tblCustomers.Close 
Set tblCustomers = Nothing 
DoCmd.Close 
End Sub
Je suis assez confus. Ajout d'un enregistrement à une forme liée devrait être aussi facile que de cliquer sur le nouveau record bouton nav dans le volet inférieur de la forme (flèche vers la droite avec un astérisque). Aussi, est-ce que votre BeforeUpdate routine utiliser le .OldValue propriété? C'est le seul moyen que je connaisse pour uncommit un champ lié, comme les modifications sont enregistrées à la table dès que vous quittez un contrôle. Sans .OldValue vous êtes le déclenchement de votre routine trop tard, et aurait probablement besoin d'être ajouté à l'événement BeforeUpdate de chaque contrôle, pas sur la forme. Poste le code de votre bouton de soumission et de l'événement beforeupdate à préciser.

OriginalL'auteur New2This | 2016-08-23