Bonjour à tous,
J'ai un soucis lors de l'ouverture d'un formulaire en VBA.
J'utilise dans une première macro un simple DoCmd.OpenForm mais j'ai inséré dans mon formulaire une macro qui se déclenche à l'ouverture afin d'alimenter certains champs. Le problème c'est que le formulaire n'est pas positionné sur un nouvel enregistrement (malgré l'appel en "acFormAdd") car rien n'a encore été saisie. Je ne peux donc pas utiliser l'ID en cours pour mettre à jour certains champs à l'ouverture ...
J'ai fouillé mais je n'arrive pas à trouver de solution. Merci pour votre aide bienvenue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub open_facture() DoCmd.OpenForm "frm_facture", , , , acFormAdd End SubC'est "Me.Fact_id.Value" qui ne suit pas ... Ici à "Null" car pas d'enregistrement en cours ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub Form_Open() Dim oRst As dao.Recordset Dim oDb As dao.Database Dim crit_sql As String Dim num_fact_tmp As Long Dim num_fact As String crit_sql = "SELECT sys_fact_id, sys_fact_val FROM tbl_sys_facture WHERE sys_fact_id='sys_num_fact'" Set oDb = currentdb Set oRst = oDb.OpenRecordset(crit_sql, dbOpenDynaset) num_fact_tmp = oRst.Fields("sys_fact_val").Value num_fact = "FA" & Left("0000000", 7 - Len(num_fact_tmp)) & num_fact_tmp crit_sql = "UPDATE tbl_bdd_facture SET fact_num='" & num_fact & "' WHERE fact_id=" & Me.fact_id.Value oDb.Execute (crit_sql) Me.fact_num.Requery End Sub
Partager