CHAMP CALCULE CONDITIONNEL ACCESS
Résolu
GUYSYS
Messages postés
27
Statut
Membre
-
Siroua -
Siroua -
BONJOUR,
J'ai besoin , dans un formulaire de base de donée ACCESS 2000 que la valeur d'un contrôle RESULTAT affiche le résultat d'une soustraction correspondant à diffrénce entre la valeur de deux autres contrôle A, B de telle sorte que :
SI (A-B) <0 RESULTAT =0
SI (A-B) >=0 RESULTAT = le montant de cette différence
SI (A-B)=A ( c'est à dire si B=O) qu'une 3émé condition soit vérifié du style C<> NULL POUR AFFICHER RESULTAT = A
SI C= NULL RESULTAT doit rester à O.
Cela peut paraître simple mais je piétine, pouvez-vous m'aider, dois-je créer une macro avec variable ou une procédure évenementielle pour le contrôle RESULTAT ou ???
Merci de vos éventuelles idées sur la question , exemples bienvenus.
J'ai besoin , dans un formulaire de base de donée ACCESS 2000 que la valeur d'un contrôle RESULTAT affiche le résultat d'une soustraction correspondant à diffrénce entre la valeur de deux autres contrôle A, B de telle sorte que :
SI (A-B) <0 RESULTAT =0
SI (A-B) >=0 RESULTAT = le montant de cette différence
SI (A-B)=A ( c'est à dire si B=O) qu'une 3émé condition soit vérifié du style C<> NULL POUR AFFICHER RESULTAT = A
SI C= NULL RESULTAT doit rester à O.
Cela peut paraître simple mais je piétine, pouvez-vous m'aider, dois-je créer une macro avec variable ou une procédure évenementielle pour le contrôle RESULTAT ou ???
Merci de vos éventuelles idées sur la question , exemples bienvenus.
A voir également:
- Access champ calculé conditionnel
- Excel champ calculé avec condition - Forum Excel
- Hns-self-wan-access-ipv6 ✓ - Forum Réseau
- Mise en forme conditionnel - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Acer quick access - Forum Logiciels
10 réponses
Salut,
alors moi je ne passe pas par un champ de precalcul (c'est totalement inutile).
Je te propose la chose suivante :
Tu crées un formulaire "Formulaire1" avec 4 contrôles de type texte dedans (nommés A, B, Date_Sortie, Resultat)
Tu crées un module (dans la fenêtre base de données) avec ce code-là :
Ensuite, il ne reste plus qu'à affecter du code dans la propriété "après maj" des trois premiers contrôles en mettant un appel à la sous-procédure MajResu définie dans le module :
Comme ça, dès que tu saisis qq chose et que le focus passe sur un autre champ, on recalcule...
Mais comme ton algorithme n'est pas en phase avec les exemples que tu m'as proposés, j'ai fait en fonction de l'algo, à toi de voir ce qu'il faut modifier en fonction de tes besoins...
alors moi je ne passe pas par un champ de precalcul (c'est totalement inutile).
Je te propose la chose suivante :
Tu crées un formulaire "Formulaire1" avec 4 contrôles de type texte dedans (nommés A, B, Date_Sortie, Resultat)
Tu crées un module (dans la fenêtre base de données) avec ce code-là :
Public Sub MajResu()
Dim ValA As Long
Dim ValB As Long
Dim Diff As Long
If IsNull(Forms!Formulaire1.Controls("A").Value) Then
ValA = 0
Else
ValA = Val(Forms!Formulaire1.Controls("A").Value)
End If
MsgBox ValA
If IsNull(Forms!Formulaire1.Controls("B").Value) Then
ValB = 0
Else
ValB = Val(Forms!Formulaire1.Controls("B").Value)
End If
MsgBox ValB
Diff = ValA - ValB
MsgBox Diff
If Diff < 0 Then
Forms!Formulaire1.Controls("Resultat").Value = 0
Exit Sub
End If
If Diff >= 0 Then
Forms!Formulaire1.Controls("Resultat").Value = Diff
Exit Sub
End If
If ValB = 0 Then
If IsNull(Forms!Formulaire1.Controls("Date_Sortie").Value) Then
Forms!Formulaire1.Controls("Resultat").Value = 0
Else
Forms!Formulaire1.Controls("Resultat").Value = Diff
End If
End If
End Sub
Ensuite, il ne reste plus qu'à affecter du code dans la propriété "après maj" des trois premiers contrôles en mettant un appel à la sous-procédure MajResu définie dans le module :
Private Sub A_AfterUpdate() MajResu End Sub Private Sub B_AfterUpdate() MajResu End Sub Private Sub Date_Sortie_AfterUpdate() MajResu End Sub
Comme ça, dès que tu saisis qq chose et que le focus passe sur un autre champ, on recalcule...
Mais comme ton algorithme n'est pas en phase avec les exemples que tu m'as proposés, j'ai fait en fonction de l'algo, à toi de voir ce qu'il faut modifier en fonction de tes besoins...