Pré-remplir un nouvel enregistrement
Vous avez toujours désiré que vos nouveaux enregistrements de formulaires soient pré-remplis avec les valeurs du dernier enregistrement saisi, mais sans écrire une seule ligne de code. C’est possible et très simplement.
Pourquoi le double contrôle type et remarque ?
La procédure de remplissage vérifie que le contrôle soit d'un type déterminé et que la remarque soit bonne. Ceci pour éviter qu'une remarque de remplissage soit marquée pour un bouton de commande par exemple et provoque une erreur d'exécution.
Comment indiquer les contrôles à remplir ?
Chaque contrôle de type texte, combo, liste et case à cocher, peut être pré-rempli et vous devez indiquer le texte AutoFillNewRecord dans la propriété Remarque du contrôle. C’est tout.
Quelle procédure exécuter pour remplir les contrôles et dans quel événement ?
Une procédure unique dans l’événement Form_Current() pour tous les formulaires est utilisée. Placez la dans VB Editor par copier/coller de la procédure ci-dessous.
Private Sub Form_Current()
AutoFillNewRecord Me
End Sub
AutoFillNewRecord Me
End Sub
Quelle procédure unique de remplissage utiliser ?
Créer un module et placer la procédure ci-dessous dans ce module. Si vous nommez le module, ne lui donnez pas le même nom que la procédure. Ce module sera utilisé par tous les formulaires de votre projet.
Public Sub AutoFillNewRecord(Frm As Form)
If Frm.NewRecord Then
Dim Rs As DAO.Recordset
Set Rs = Frm.RecordsetClone
If Not Rs.EOF Then
Rs.MoveLast
Dim Ctl As Control
For Each Ctl In Frm.Controls
If Ctl.ControlType = acTextBox Or _
Ctl.ControlType = acCheckBox Or _
Ctl.ControlType = acComboBox Or _
Ctl.ControlType = acListBox Then
If Ctl.Tag = "AutoFillNewRecord" Then
Frm(Ctl.Name) = Rs(Ctl.Name)
End If
End If
Next Ctl
Set Ctl = Nothing
End If
Set Rs = Nothing
End If
End Sub
Pourquoi le double contrôle type et remarque ?
La procédure de remplissage vérifie que le contrôle soit d'un type déterminé et que la remarque soit bonne. Ceci pour éviter qu'une remarque de remplissage soit marquée pour un bouton de commande par exemple et provoque une erreur d'exécution.