Bonjour,
Sous Excel, voilà un extrait de mon fichier. Est-il possible de faire la même chose sous Access ?
J'ai fait des essais dans les tables sans y parvenir
Merci à vous.
Bonjour,
Sous Excel, voilà un extrait de mon fichier. Est-il possible de faire la même chose sous Access ?
J'ai fait des essais dans les tables sans y parvenir
Merci à vous.
Access n'utilise pas des cellules dans ses calculs, mais les noms de champs
Vous écrirez donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [Solde] = [Solde precedent] - [Debit] + [Credit] 'sachant que vos champs s'appellent bien "Solde", "Solde precedent" , "Debit" et "Credit"
Salut
Il faut utiliser des fonctions de domaine via une requête QBE !
Code : Sélectionner tout - Visualiser dans une fenêtre à part cumul:SomDom("debit_ops";"tbl_ops";"[date_ops] <= #" & Format([date_ops];"mm/jj/aaaa") & "#")-SomDom("credit_ops";"tbl_ops";"[date_ops] <= #" & Format([date_ops];"mm/jj/aaaa") & "#")
Bonjour,
Zekraoui_Jakani
Je n'ai pas de champ [solde precedent]. Où faut-il que je l'incorpore ?
hyperion13
J'ai bien mis la formule dans la requête mais j'ai le message suivant :
Merci à vous deux.
Il serait bon de copier/coller la syntaxe de votre req !
Sinon un ordre d'idée de sa construction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT id_ops, date_ops, tiers_ops, debit_ops, credit_ops, DSum("debit_ops","tbl_ops","[date_ops] <= #" & Format([date_ops],"mm/dd/yyyy") & "#")-DSum("credit_ops","tbl_ops","[date_ops] <= #" & Format([date_ops],"mm/dd/yyyy") & "#") AS solde FROM tbl_ops
La formule proposée s'inscrit dans une fonction ou procédure qui lira la table de façon séquentielle et calculera le solde à chaque ligne.
Si l'on est le 2 avril, [Solde précédent] est une variable où l'on mémorisera le solde au 1er avril (qui est connu).
J'ai modifié la fonction car cela ajoutait les débits et ôtait les crédits.
Avant d'aller plus loin, je vous remercie.
Vous pouvez insérez un module standard et y coller le code ci-dessus que vous pouvez lancer directement ou via un bouton de commande :
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 Sub Calcul_Solde() Dim rs As Recordset Dim PrevSolde As Double Set rs = CurrentDb.OpenRecordset("tbl_Ops", dbOpenDynaset) With rs .MoveFirst PrevSolde = Nz(!Solde, 0) On Error Resume Next Do While Not .EOF .MoveNext .Edit !Solde = PrevSolde + Nz(!Credit, 0) - Nz(!Debit, 0) PrevSolde = PrevSolde + Nz(!Credit, 0) - Nz(!Debit, 0) .Update Loop End With rs.Close: Set rs = Nothing End Sub
Voici une solution:
Michel_92170_20220409.rar
Bonjour,
Un grand merci pour cette réponse. C'est parfait.
Bonne journée.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager