Récupération de valeurs du petit au grand
Résolu/Fermé
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
-
16 mai 2019 à 20:30
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 21 mai 2019 à 21:59
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 21 mai 2019 à 21:59
A voir également:
- Récupération de valeurs du petit au grand
- Excel trier du plus grand au plus petit - Guide
- Convertisseur récupération de texte - Guide
- Photo insta en grand - Guide
- Petit 3 ✓ - Forum Word
- Alexia organise un appel vidéo avec ses grand-parents qui ne veulent pas installer de logiciel ou d’application, ni créer un compte. - Forum Windows
3 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
16 mai 2019 à 21:59
16 mai 2019 à 21:59
bonjour, je suppose que les 5 champs que tu nous montres sont les champs que tu souhaites pour ton résultat.
souhaites-tu un seul résultat par compte? ou bien veux-tu reprendre toutes les opérations, en calculant à chaque fois le solde instantané?
peux-tu nous décrire les tables et les champs de ta base?
peux-tu également partager la source de ton application?
souhaites-tu un seul résultat par compte? ou bien veux-tu reprendre toutes les opérations, en calculant à chaque fois le solde instantané?
peux-tu nous décrire les tables et les champs de ta base?
peux-tu également partager la source de ton application?
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
Modifié le 16 mai 2019 à 22:49
Modifié le 16 mai 2019 à 22:49
Rebonjour
Merci pour ta réponse. Ce que je cherche , comment, à partir de la table1, où les comptes sont enregistrés d'une façon désordonné, les récupérer du petit compte au plus grand et les enregistrer par ordre croissant dans la table2.
Encore merci
Merci pour ta réponse. Ce que je cherche , comment, à partir de la table1, où les comptes sont enregistrés d'une façon désordonné, les récupérer du petit compte au plus grand et les enregistrer par ordre croissant dans la table2.
Encore merci
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
17 mai 2019 à 03:54
17 mai 2019 à 03:54
Re bonjour
Je vous reformule mon probléme d'une autre façon plus simple.
Comment pourrai je trier , (gràce à un code de vb6, ) les cellules d'une colonne de table en acces de façon croissante. ?
Merci d'avance pour votre aide
Je vous reformule mon probléme d'une autre façon plus simple.
Comment pourrai je trier , (gràce à un code de vb6, ) les cellules d'une colonne de table en acces de façon croissante. ?
Merci d'avance pour votre aide
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
17 mai 2019 à 18:40
17 mai 2019 à 18:40
montre-nous le code que tu utilises. difficile de t'expliquer comment adapter ton code sans rien en savoir.
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
17 mai 2019 à 19:43
17 mai 2019 à 19:43
Re bonjour
Voilà, je vous explique avant tout.
J'ai :
A- une Table principale ( TableTraitement) où je saisie les opérations comptables.
B-une commande pour imprimer la Balance (Etat comptable). on y trouve 6 colonnes
Colonne 1 : Compte
Colonne 2 : Intitulé
Colonne 3 : Debit
Colonne 4 : Credit
Colonne 5 : Solde
Colonne 6 : Cumul
Pour passer de la TableTraitement à la Balance, je passe par une Table de transit (TableBalance).
Celle-ci se vide et se remplie lors de chaque commande d'impression de la balance.
Après plusieurs tentative, j'ai réussi une partie de mon objectif, c'est à dire avoir le classement par ordre croissant des comptes, en passant par une autre table de transit ( TableBalanceClas ). Celle-ci se vide et se remplie lors de chaque commande.
Elle se remplie par la récupération des données de la première table de transit (TableBalance).
Mon problème reste dans l'enregistrement des cumul dans cet ordre (c.à.d l'ordre croissant des comptes)
mes codes sont comme suite:
Voilà, je vous explique avant tout.
J'ai :
A- une Table principale ( TableTraitement) où je saisie les opérations comptables.
B-une commande pour imprimer la Balance (Etat comptable). on y trouve 6 colonnes
Colonne 1 : Compte
Colonne 2 : Intitulé
Colonne 3 : Debit
Colonne 4 : Credit
Colonne 5 : Solde
Colonne 6 : Cumul
Pour passer de la TableTraitement à la Balance, je passe par une Table de transit (TableBalance).
Celle-ci se vide et se remplie lors de chaque commande d'impression de la balance.
Après plusieurs tentative, j'ai réussi une partie de mon objectif, c'est à dire avoir le classement par ordre croissant des comptes, en passant par une autre table de transit ( TableBalanceClas ). Celle-ci se vide et se remplie lors de chaque commande.
Elle se remplie par la récupération des données de la première table de transit (TableBalance).
Mon problème reste dans l'enregistrement des cumul dans cet ordre (c.à.d l'ordre croissant des comptes)
mes codes sont comme suite:
Private Sub CmdImprimer_Click()
'la commande d'mpression ( Sélection de : Tous )
If OptTous.Value = True Then
'Aller vers la sub de calcul
Call Balance
End If
Sub Balance()
'________Vider la TableBalance
Dim I, PN, DN As Integer
'Determiner le premier Numéro
SQLs = "select * from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdreBalance asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdreBalance] <> 0 Then
RS.MoveFirst
PN = RS![NOrdreBalance]
End If
RS.Close
'Determiner le Dernier numéro
SQLs = "select * from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdreBalance asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdreBalance] <> 0 Then
RS.MoveLast
DN = RS![NOrdreBalance]
End If
RS.Close
'Récupérer les valeurs et les enregistrer
For I = PN To DN Step 1
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "')and (NOrdreBalance=" & CInt(I) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If I <> 0 Then
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "')and (NOrdreBalance=" & CInt(I) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdreBalance] = I Then
RS.Delete
End If
RS.Close
End If
Next I
'_________Vider la TableBalanceClas
Dim IClas, PNClas, DNClas As Integer
'Determiner le premier Numéro
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveFirst
PNClas = RS![NOrdre]
End If
RS.Close
'Determiner le dernier numéro
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveLast
DNClas = RS![NOrdre]
End If
RS.Close
'Récupérer les valeurs et les enregistrer
For IClas = PNClas To DNClas Step 1
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "')and (NOrdre=" & CInt(IClas) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If IClas <> 0 Then
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "')and (NOrdre=" & CInt(IClas) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = IClas Then
RS.Delete
End If
RS.Close
End If
Next IClas
'_________Remplir la TableBalance
Dim ITrait, PNTrait, DNTrait As Integer
SQLs = "select * from TableTraitement where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveFirst
PNTrait = RS![NOrdre]
End If
RS.Close
SQLs = "select * from TableTraitement where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveLast
DNTrait = RS![NOrdre]
End If
RS.Close
For ITrait = PNTrait To DNTrait Step 1
Dim Compte, Intitule As String
Dim Debit, Credit As Double
SQLs = "select * from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (NOrdre=" & CInt(ITrait) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ITrait Then
Compte = RS![Compte]
Intitule = RS![Intitule]
End If
RS.Close
SQLs = "select sum(Debit) from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Debit = Format(RS.Fields(0), "#,##0.00")
RS.Close
SQLs = "select sum(Credit) from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Credit = Format(RS.Fields(0), "#,##0.00")
RS.Close
'____________________
Dim NOrdreBalance As Integer
SQLs = "select * from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdreBalance asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdreBalance] <> 0 Then
RS.MoveLast
NOrdreBalance = RS![NOrdreBalance] + 1
Else
NOrdreBalance = 1
End If
RS.Close
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS.EOF Then
GoTo Oks:
Exit Sub
Else
GoTo Nos:
Exit Sub
End If
Oks:
RS.AddNew
RS![NOrdreBalance] = NOrdreBalance
RS![Societe] = VarSociete
RS![Dossier] = VarDossier
RS![Compte] = Compte
RS![Intitule] = Intitule
RS![Debit] = Debit
RS![Credit] = Credit
RS.Update
RS.Close
Nos:
Next ITrait
'________Reclassement des comptes dans la TableBalanceClas
Dim NbreLignes, ILignes, NOrdreLignes As Integer
Dim CompteLignes, IntituleLignes As String
Dim DebitLignes, CreditLignes As Double
SQLs = "select Compte from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by Compte asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
NbreLignes = RS.RecordCount
RS.Close
For ILignes = 1 To NbreLignes Step 1
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "') and (NOrdreBalance=" & CInt(ILignes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
If RS![NOrdreBalance] = ILignes Then
CompteLignes = RS![Compte]
IntituleLignes = RS![Intitule]
DebitLignes = RS![Debit]
CreditLignes = RS![Credit]
End If
RS.Close
'______________
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
If RS![NOrdre] <> 0 Then
RS.MoveLast
NOrdreLignes = RS![NOrdre] + 1
Else
NOrdreLignes = 1
End If
RS.Close
'______________
SQLs = "select * from TableBalanceClas where (Compte=" & CLng(CompteLignes) & ")"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
If RS.EOF Then
GoTo OkLignes:
Exit Sub
Else
GoTo NoLignes:
Exit Sub
End If
OkLignes:
RS.AddNew
RS![Compte] = CLng(CompteLignes)
RS![Intitule] = IntituleLignes
RS![Debit] = DebitLignes
RS![Credit] = CreditLignes
RS![NOrdre] = NOrdreLignes
RS![Dossier] = VarDossier
RS.Update
RS.Close
NoLignes:
Next ILignes
'________Calcul des soldes
Dim ISoldes, PNSoldes, DNSoldes As Integer
Dim DebitSoldes, CreditSoldes, MtSoldes As Double
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveFirst
PNSoldes = RS![NOrdre]
End If
RS.Close
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveLast
DNSoldes = RS![NOrdre]
End If
RS.Close
For ISoldes = PNSoldes To DNSoldes Step 1
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldes Then
DebitSoldes = RS![Debit]
CreditSoldes = RS![Credit]
End If
RS.Close
MtSoldes = CDbl(DebitSoldes) - CDbl(CreditSoldes)
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldes Then
RS![Solde] = MtSoldes
RS.Update
End If
RS.Close
Next ISoldes
End Sub
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
17 mai 2019 à 20:13
17 mai 2019 à 20:13
as-tu essayé de faire
delete * from TableBalancepour vider la table?
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
17 mai 2019 à 20:27
17 mai 2019 à 20:27
Re bonjour
Jamais. pour une simple raison : je ne le savais pas
je vais l'essayer
Merci pour l'information
Jamais. pour une simple raison : je ne le savais pas
je vais l'essayer
Merci pour l'information
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
17 mai 2019 à 21:18
17 mai 2019 à 21:18
suggestion:
SQLs = " select Compte, Intitule, sum(Debit) as totaldebit, sum(Credit) as totalcredit " _ + " from TableTraitement " _ + " where Dossier='" + CStr(VarDossier) + "' order by Compte" RStrait.Open SQLs, db, adOpenKeyset, adLockPessimistic db.Execute "delete * from TableBalance where Dossier='" + CStr(VarDossier) + "' " RSbal.Open "TableBalance", db, adOpenKeyset, adLockPessimistic cumul = 0 Do While Not RStrait.EOF RSbal.AddNew RSbal![Societe] = VarSociete RSbal![dossier] = VarDossier RSbal![Compte] = RStrait!Compte RSbal![Intitule] = RStrait!Intitule RSbal![Debit] = RStrait!totaldebit RSbal![Credit] = RStrait!totalcredit RSbal![solde] = RStrait!totaldebit - RStrait!totalcredit cumul = cumul + RSbal![solde] RSbal![cumul] = cumul RSbal.Update RStrait.MoveNext Loop RStrait.Close RSbal.Close
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
18 mai 2019 à 12:25
18 mai 2019 à 12:25
Bonjour
Vous m'aviez bien aidé par votre suggestion. je m'en suis inspiré et le resultat était positif.
voilà ce que j'ai écris comme code :
Toute ma commande d'impression est redevenue comme suite :
Avec toute ma reconnaissance
Vous m'aviez bien aidé par votre suggestion. je m'en suis inspiré et le resultat était positif.
voilà ce que j'ai écris comme code :
'________NOrdre
Dim NbreNOrdre As Integer
NOrdreLignes = 1
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by Compte asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Do While Not RS.EOF
RS![NOrdre] = NOrdreLignes
RS.Update
NOrdreLignes = NOrdreLignes + 1
RS.MoveNext
Loop
RS.Close
Toute ma commande d'impression est redevenue comme suite :
Sub Balance()
'________Vider la TableBalance
SQLs = "delete * from TableBalance"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
'_________Vider la TableBalanceClas
SQLs = "delete * from TableBalanceClas"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
'_________Remplir la TableBalance
Dim ITrait, PNTrait, DNTrait As Integer
SQLs = "select * from TableTraitement where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveFirst
PNTrait = RS![NOrdre]
End If
RS.Close
SQLs = "select * from TableTraitement where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveLast
DNTrait = RS![NOrdre]
End If
RS.Close
For ITrait = PNTrait To DNTrait Step 1
Dim Compte, Intitule As String
Dim Debit, Credit As Double
SQLs = "select * from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (NOrdre=" & CInt(ITrait) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ITrait Then
Compte = RS![Compte]
Intitule = RS![Intitule]
End If
RS.Close
SQLs = "select sum(Debit) from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Debit = Format(RS.Fields(0), "#,##0.00")
RS.Close
SQLs = "select sum(Credit) from TableTraitement where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Credit = Format(RS.Fields(0), "#,##0.00")
RS.Close
'____________________
Dim NOrdreBalance As Integer
SQLs = "select * from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdreBalance asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdreBalance] <> 0 Then
RS.MoveLast
NOrdreBalance = RS![NOrdreBalance] + 1
Else
NOrdreBalance = 1
End If
RS.Close
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "')and (Compte='" & CStr(Compte) & "'))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS.EOF Then
GoTo Oks:
Exit Sub
Else
GoTo Nos:
Exit Sub
End If
Oks:
RS.AddNew
RS![NOrdreBalance] = NOrdreBalance
RS![Societe] = VarSociete
RS![Dossier] = VarDossier
RS![Compte] = Compte
RS![Intitule] = Intitule
RS![Debit] = Debit
RS![Credit] = Credit
RS.Update
RS.Close
Nos:
Next ITrait
'________Reclassement des comptes dans la TableBalanceClas
Dim NbreLignes, ILignes, NOrdreLignes As Integer
Dim CompteLignes, IntituleLignes As String
Dim DebitLignes, CreditLignes As Double
SQLs = "select Compte from TableBalance where (Dossier='" & CStr(VarDossier) & "')" & "order by Compte asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
NbreLignes = RS.RecordCount
RS.Close
For ILignes = 1 To NbreLignes Step 1
SQLs = "select * from TableBalance where ((Dossier='" & CStr(VarDossier) & "') and (NOrdreBalance=" & CInt(ILignes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
If RS![NOrdreBalance] = ILignes Then
CompteLignes = RS![Compte]
IntituleLignes = RS![Intitule]
DebitLignes = RS![Debit]
CreditLignes = RS![Credit]
End If
RS.Close
'______________
SQLs = "select * from TableBalanceClas where (Compte=" & CLng(CompteLignes) & ")"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic
If RS.EOF Then
GoTo OkLignes:
Exit Sub
Else
GoTo NoLignes:
Exit Sub
End If
OkLignes:
RS.AddNew
RS![Compte] = CLng(CompteLignes)
RS![Intitule] = IntituleLignes
RS![Debit] = DebitLignes
RS![Credit] = CreditLignes
RS![Dossier] = VarDossier
RS.Update
RS.Close
NoLignes:
Next ILignes
'________NOrdre
Dim NbreNOrdre As Integer
NOrdreLignes = 1
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by Compte asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
Do While Not RS.EOF
RS![NOrdre] = NOrdreLignes
RS.Update
NOrdreLignes = NOrdreLignes + 1
RS.MoveNext
Loop
RS.Close
'________Calcul des soldes
Dim ISoldes, PNSoldes, DNSoldes, ISoldesAv As Integer
Dim DebitSoldes, CreditSoldes, MtSoldes, MtCumuls As Double
Dim DebitSoldesAv, CreditSoldesAv, MtSoldesAv, MtCumulsAv As Double
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveFirst
PNSoldes = RS![NOrdre]
End If
RS.Close
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by NOrdre asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] <> 0 Then
RS.MoveLast
DNSoldes = RS![NOrdre]
End If
RS.Close
For ISoldes = PNSoldes To DNSoldes Step 1
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldes Then
DebitSoldes = RS![Debit]
CreditSoldes = RS![Credit]
End If
RS.Close
MtSoldes = CDbl(DebitSoldes) - CDbl(CreditSoldes)
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldes Then
RS![Solde] = MtSoldes
RS.Update
End If
RS.Close
'_______________Les données de la ligne antérieure
ISoldesAv = ISoldes - 1
If ISoldes = 1 Then
MtCumuls = CDbl(MtSoldes)
ElseIf ISoldes > 1 Then
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldesAv) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldesAv Then
MtCumulsAv = RS![Cumul]
End If
RS.Close
MtCumuls = CDbl(MtCumulsAv) + CDbl(MtSoldes)
End If
SQLs = "select * from TableBalanceClas where ((Dossier='" & CStr(VarDossier) & "') and (NOrdre=" & CInt(ISoldes) & "))"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
If RS![NOrdre] = ISoldes Then
RS![Cumul] = MtCumuls
RS.Update
End If
RS.Close
Next ISoldes
'_____________________________________________
Dim DebitG, CreditG, SoldeG As Double
SQLs = "select sum(Debit) from TableBalance where (Dossier='" & CStr(VarDossier) & "')"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
DebitG = Format(RS.Fields(0), "#,##0.00")
RS.Close
SQLs = "select sum(Credit) from TableBalance where (Dossier='" & CStr(VarDossier) & "')"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
CreditG = Format(RS.Fields(0), "#,##0.00")
RS.Close
SoldeG = Format((CDbl(DebitG) - CDbl(CreditG)), "#,##0.00")
'_________________________________________________________________________
On Error Resume Next
SQLs = "select * from TableBalanceClas where (Dossier='" & CStr(VarDossier) & "')" & "order by Compte asc"
If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic
ADBalance.RecordSource = SQLs
Set DRBalance.DataSource = ADBalance
ADBalance.Refresh
DRBalance.Sections("Section4").Controls("LDossier").Caption = VarDossier
DRBalance.Sections("Section4").Controls("LDateDebut").Caption = VarDateD
DRBalance.Sections("Section4").Controls("LDateFinale").Caption = VarDateF
DRBalance.Sections("Section5").Controls("LblSolde").Caption = Format(SoldeG, "#,##0.00")
DRBalance.Show
DRBalance.WindowState = 2
End Sub
Avec toute ma reconnaissance
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
Modifié le 18 mai 2019 à 12:53
Modifié le 18 mai 2019 à 12:53
suggestion corrigée:
SQLs = " select Compte, Intitule, sum(Debit) as totaldebit, sum(Credit) as totalcredit " _ + " from TableTraitement " _ + " where Dossier='" + CStr(VarDossier) _ + "' group by Compte, Intitule order by Compte" RStrait.Open SQLs, db, adOpenKeyset, adLockPessimistic db.Execute "delete * from TableBalance where Dossier='" + CStr(VarDossier) + "' " RSbal.Open "TableBalance", db, adOpenKeyset, adLockPessimistic cumul = 0 Do While Not RStrait.EOF RSbal.AddNew RSbal![Societe] = VarSociete RSbal![dossier] = VarDossier RSbal![Compte] = RStrait!Compte RSbal![Intitule] = RStrait!Intitule RSbal![Debit] = RStrait!totaldebit RSbal![Credit] = RStrait!totalcredit RSbal![solde] = RStrait!totaldebit - RStrait!totalcredit cumul = cumul + RSbal![solde] RSbal![cumul] = cumul RSbal.Update RStrait.MoveNext Loop RStrait.Close RSbal.Close
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
18 mai 2019 à 17:13
18 mai 2019 à 17:13
Re bonjour
Merci infiniment;
Merci infiniment;
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
2
21 mai 2019 à 15:36
21 mai 2019 à 15:36
Bonjour
J'ai essayé votre suggestion avec réussite pour récupérer le cumul d'une table sans aucun filtre.
la Question comment pourrai je faire avec ces phrases de codes pour avoir le cumul avec filtre,
c'est à dire le calcul des cumul pour chaque compte enregistré dans cette table ?
Merci d'avance
J'ai essayé votre suggestion avec réussite pour récupérer le cumul d'une table sans aucun filtre.
la Question comment pourrai je faire avec ces phrases de codes pour avoir le cumul avec filtre,
c'est à dire le calcul des cumul pour chaque compte enregistré dans cette table ?
Merci d'avance
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
Lenouveauapprenti
Messages postés
300
Date d'inscription
samedi 22 décembre 2018
Statut
Membre
Dernière intervention
7 avril 2024
21 mai 2019 à 21:59
21 mai 2019 à 21:59
chaque compte enregistré dans quelle table?