Bonjour
J'ai créé un formulaire lié à une table DONNEES. A partir d'un champ Recette du formulaire, je calcule un champ tvarecette et htrecette.
La propriété source controle par exemple du champ htrecette est "=[recette]-[TVArecette]".Celle du champ recette est "recette" liée directement à la table DONNEES.
L'actualisation de la base DONNEES se fait directement pour le champ Recette. Ce n'ai pas le cas pour les champs calculés alors j'ai créé un bouton enregistré avec le code suivant :
Le problème est que la base DONNEES enregistre 2 fois les champs : une fois avec les champs directement liés au formulaire et sans champ calculés et une autre fois avec tous les champs.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Dim curConn As New ADODB.Connection Dim rst As New ADODB.Recordset Set curConn = CurrentProject.Connection rst.Open "DONNEEES", curConn, adOpenDynamic, adLockOptimistic, adCmdTable With rst iRponse = MsgBox("Voulez vous enregistrer ces valeurs ?", vbYesNo, "Enregistrer") Select Case iRponse Case vbYes .AddNew ![DATATION] = Me.DATATION ![CATEGORIE] = Me.CATEGORIE ![CLIENTS] = Me.CLIENTS ![DESCRIPTIF] = Me.DESCRIPTIF ![DEPENSES] = Me.DEPENSES ![HTDEPENSES] = Me.HTDEPENSES ![TVADEPENSES] = Me.TVADEPENSES ![RECETTES] = Me.RECETTES ![HTRECETTES] = Me.HTRECETTES ![TVARECETTES] = Me.TVARECETTES ![KMS] = Me.KMS ![TAUXTVA] = Me.TVA_liste .Update Case vbNo rst.CancelUpdate rst.Close Set rst = Nothing Set curConn = Nothing Exit Sub End Select End With DoCmd.GoToRecord acActiveDataObject, , acNewRec rst.Close Set rst = Nothing Set curConn = Nothing End Sub
Comment éviter ce soucis de double enregistrement?
Comment je peux lier la propriété source controle d'un champ calculé avec un champ correspondant dans la table DONNEES ?
merci
christophe
Partager