C’est ma première visite dans ce forum que je le trouve exilent avec des
gens compétent en la matière, j’ai lu presque tous les questions et réponses
et j’ai même visité la faq pour trouvé une réponse à ma question Hélas je
n’ai rien trouvé ou j’ai mal cherché peut être pour cette raison je trouve
que c’est utile de posé mon problème aux compétences de ce forum afin de
trouvé une réponse à ma question.
Voici ma question. Je souhaite que je serai clair vu mon faible niveau en
langue française.
J’ai réussi à récupérer des données d’une base de données d’un classeur
fermé à l’aide de ADO « connection,requette,recordset » jusqu'au là pas de
problème donc je voulais faire une boucle en totalisant les montants à 2
positions à 3 positions et à 4 position en fonction du n° de compte qui est
répété plusieurs fois dans ma base de données et affiché ces totaux de cette
façon
62 2400
620 1400
6200 1000 par exemple ect………..
J’ai essyé avec do while not rst.eof
Cpt=left(compte,3)
Do while left(compte,3)=cpt
-----
-----
Loop
Total 62 …
Loop
Et à chaque fois un message s’affiche disant que le recordset eof ou quelque
chose comme çà.
Quelqu’un pourrait il m’aider de réalisé mon prg.
Merci d’avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clive Lumb
ABED HADDOU wrote:
Bonjour tous le monde
C'est ma première visite dans ce forum que je le trouve exilent avec des gens compétent en la matière, j'ai lu presque tous les questions et réponses et j'ai même visité la faq pour trouvé une réponse à ma question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour cette raison je trouve que c'est utile de posé mon problème aux compétences de ce forum afin de trouvé une réponse à ma question. Voici ma question. Je souhaite que je serai clair vu mon faible niveau en langue française. J'ai réussi à récupérer des données d'une base de données d'un classeur fermé à l'aide de ADO « connection,requette,recordset » jusqu'au là pas de problème donc je voulais faire une boucle en totalisant les montants à 2 positions à 3 positions et à 4 position en fonction du n° de compte qui est répété plusieurs fois dans ma base de données et affiché ces totaux de cette façon 62 2400 620 1400 6200 1000 par exemple ect..... J'ai essyé avec do while not rst.eof Cpt=left(compte,3) Do while left(compte,3)=cpt ----- ----- Loop Total 62 . Loop Et à chaque fois un message s'affiche disant que le recordset eof ou quelque chose comme çà. Quelqu'un pourrait il m'aider de réalisé mon prg. Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais faire. Saches d'abord qu'un moteur de bases de données intègre des fonctions de sommation et de regroupement qui font facilement la sommes de montants d'un compte - et qui sont beaucoup plus rapides que de parcourir les enregistrements compte par compte. Tout se passe dans la chaine SQL de la connexion. Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul compte la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient "Select * from MonTable where Compte like '62%'" (Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec rst.movefirst while not rst.eof Somme=Somme+ rst.fields("Montant").Value rst.movenext wend
Cependant on pourra le faire plus simplement avec "Select SUM(Montant) as Somme From MonTable where Compte like '62%'" debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait "Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte" while not rst.eof debug.print rst.fields("Compte").Value, rst.fields("Somme").Value rst.movenext wend
ABED HADDOU wrote:
Bonjour tous le monde
C'est ma première visite dans ce forum que je le trouve exilent avec
des gens compétent en la matière, j'ai lu presque tous les questions
et réponses et j'ai même visité la faq pour trouvé une réponse à ma
question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour
cette raison je trouve que c'est utile de posé mon problème aux
compétences de ce forum afin de trouvé une réponse à ma question.
Voici ma question. Je souhaite que je serai clair vu mon faible
niveau en langue française.
J'ai réussi à récupérer des données d'une base de données d'un
classeur fermé à l'aide de ADO « connection,requette,recordset »
jusqu'au là pas de problème donc je voulais faire une boucle en
totalisant les montants à 2 positions à 3 positions et à 4 position
en fonction du n° de compte qui est répété plusieurs fois dans ma
base de données et affiché ces totaux de cette façon
62 2400
620 1400
6200 1000 par exemple ect.....
J'ai essyé avec do while not rst.eof
Cpt=left(compte,3)
Do while left(compte,3)=cpt
-----
-----
Loop
Total 62 .
Loop
Et à chaque fois un message s'affiche disant que le recordset eof ou
quelque chose comme çà.
Quelqu'un pourrait il m'aider de réalisé mon prg.
Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais
faire.
Saches d'abord qu'un moteur de bases de données intègre des fonctions de
sommation et de regroupement qui font facilement la sommes de montants d'un
compte - et qui sont beaucoup plus rapides que de parcourir les
enregistrements compte par compte.
Tout se passe dans la chaine SQL de la connexion.
Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul
compte
la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient
"Select * from MonTable where Compte like '62%'"
(Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut
mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec
rst.movefirst
while not rst.eof
Somme=Somme+ rst.fields("Montant").Value
rst.movenext
wend
Cependant on pourra le faire plus simplement avec
"Select SUM(Montant) as Somme From MonTable where Compte like '62%'"
debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait
"Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte"
while not rst.eof
debug.print rst.fields("Compte").Value, rst.fields("Somme").Value
rst.movenext
wend
C'est ma première visite dans ce forum que je le trouve exilent avec des gens compétent en la matière, j'ai lu presque tous les questions et réponses et j'ai même visité la faq pour trouvé une réponse à ma question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour cette raison je trouve que c'est utile de posé mon problème aux compétences de ce forum afin de trouvé une réponse à ma question. Voici ma question. Je souhaite que je serai clair vu mon faible niveau en langue française. J'ai réussi à récupérer des données d'une base de données d'un classeur fermé à l'aide de ADO « connection,requette,recordset » jusqu'au là pas de problème donc je voulais faire une boucle en totalisant les montants à 2 positions à 3 positions et à 4 position en fonction du n° de compte qui est répété plusieurs fois dans ma base de données et affiché ces totaux de cette façon 62 2400 620 1400 6200 1000 par exemple ect..... J'ai essyé avec do while not rst.eof Cpt=left(compte,3) Do while left(compte,3)=cpt ----- ----- Loop Total 62 . Loop Et à chaque fois un message s'affiche disant que le recordset eof ou quelque chose comme çà. Quelqu'un pourrait il m'aider de réalisé mon prg. Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais faire. Saches d'abord qu'un moteur de bases de données intègre des fonctions de sommation et de regroupement qui font facilement la sommes de montants d'un compte - et qui sont beaucoup plus rapides que de parcourir les enregistrements compte par compte. Tout se passe dans la chaine SQL de la connexion. Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul compte la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient "Select * from MonTable where Compte like '62%'" (Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec rst.movefirst while not rst.eof Somme=Somme+ rst.fields("Montant").Value rst.movenext wend
Cependant on pourra le faire plus simplement avec "Select SUM(Montant) as Somme From MonTable where Compte like '62%'" debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait "Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte" while not rst.eof debug.print rst.fields("Compte").Value, rst.fields("Somme").Value rst.movenext wend
ABED HADDOU
Bonsoir Clive et merci beaucoup je vais etudier tout çà et je reviens en cas de soucis Bonne soirée
Abed_H
"Clive Lumb" a écrit :
ABED HADDOU wrote: > Bonjour tous le monde > > C'est ma première visite dans ce forum que je le trouve exilent avec > des gens compétent en la matière, j'ai lu presque tous les questions > et réponses et j'ai même visité la faq pour trouvé une réponse à ma > question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour > cette raison je trouve que c'est utile de posé mon problème aux > compétences de ce forum afin de trouvé une réponse à ma question. > Voici ma question. Je souhaite que je serai clair vu mon faible > niveau en langue française. > J'ai réussi à récupérer des données d'une base de données d'un > classeur fermé à l'aide de ADO « connection,requette,recordset » > jusqu'au là pas de problème donc je voulais faire une boucle en > totalisant les montants à 2 positions à 3 positions et à 4 position > en fonction du n° de compte qui est répété plusieurs fois dans ma > base de données et affiché ces totaux de cette façon > 62 2400 > 620 1400 > 6200 1000 par exemple ect..... > J'ai essyé avec do while not rst.eof > Cpt=left(compte,3) > Do while left(compte,3)=cpt > ----- > ----- > Loop > Total 62 . > Loop > Et à chaque fois un message s'affiche disant que le recordset eof ou > quelque chose comme çà. > Quelqu'un pourrait il m'aider de réalisé mon prg. > Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais faire. Saches d'abord qu'un moteur de bases de données intègre des fonctions de sommation et de regroupement qui font facilement la sommes de montants d'un compte - et qui sont beaucoup plus rapides que de parcourir les enregistrements compte par compte. Tout se passe dans la chaine SQL de la connexion. Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul compte la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient "Select * from MonTable where Compte like '62%'" (Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec rst.movefirst while not rst.eof Somme=Somme+ rst.fields("Montant").Value rst.movenext wend
Cependant on pourra le faire plus simplement avec "Select SUM(Montant) as Somme From MonTable where Compte like '62%'" debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait "Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte" while not rst.eof debug.print rst.fields("Compte").Value, rst.fields("Somme").Value rst.movenext wend
Bonsoir Clive et merci beaucoup je vais etudier tout çà et je reviens en cas
de soucis
Bonne soirée
Abed_H
"Clive Lumb" a écrit :
ABED HADDOU wrote:
> Bonjour tous le monde
>
> C'est ma première visite dans ce forum que je le trouve exilent avec
> des gens compétent en la matière, j'ai lu presque tous les questions
> et réponses et j'ai même visité la faq pour trouvé une réponse à ma
> question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour
> cette raison je trouve que c'est utile de posé mon problème aux
> compétences de ce forum afin de trouvé une réponse à ma question.
> Voici ma question. Je souhaite que je serai clair vu mon faible
> niveau en langue française.
> J'ai réussi à récupérer des données d'une base de données d'un
> classeur fermé à l'aide de ADO « connection,requette,recordset »
> jusqu'au là pas de problème donc je voulais faire une boucle en
> totalisant les montants à 2 positions à 3 positions et à 4 position
> en fonction du n° de compte qui est répété plusieurs fois dans ma
> base de données et affiché ces totaux de cette façon
> 62 2400
> 620 1400
> 6200 1000 par exemple ect.....
> J'ai essyé avec do while not rst.eof
> Cpt=left(compte,3)
> Do while left(compte,3)=cpt
> -----
> -----
> Loop
> Total 62 .
> Loop
> Et à chaque fois un message s'affiche disant que le recordset eof ou
> quelque chose comme çà.
> Quelqu'un pourrait il m'aider de réalisé mon prg.
> Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais
faire.
Saches d'abord qu'un moteur de bases de données intègre des fonctions de
sommation et de regroupement qui font facilement la sommes de montants d'un
compte - et qui sont beaucoup plus rapides que de parcourir les
enregistrements compte par compte.
Tout se passe dans la chaine SQL de la connexion.
Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul
compte
la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient
"Select * from MonTable where Compte like '62%'"
(Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut
mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec
rst.movefirst
while not rst.eof
Somme=Somme+ rst.fields("Montant").Value
rst.movenext
wend
Cependant on pourra le faire plus simplement avec
"Select SUM(Montant) as Somme From MonTable where Compte like '62%'"
debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait
"Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte"
while not rst.eof
debug.print rst.fields("Compte").Value, rst.fields("Somme").Value
rst.movenext
wend
Bonsoir Clive et merci beaucoup je vais etudier tout çà et je reviens en cas de soucis Bonne soirée
Abed_H
"Clive Lumb" a écrit :
ABED HADDOU wrote: > Bonjour tous le monde > > C'est ma première visite dans ce forum que je le trouve exilent avec > des gens compétent en la matière, j'ai lu presque tous les questions > et réponses et j'ai même visité la faq pour trouvé une réponse à ma > question Hélas je n'ai rien trouvé ou j'ai mal cherché peut être pour > cette raison je trouve que c'est utile de posé mon problème aux > compétences de ce forum afin de trouvé une réponse à ma question. > Voici ma question. Je souhaite que je serai clair vu mon faible > niveau en langue française. > J'ai réussi à récupérer des données d'une base de données d'un > classeur fermé à l'aide de ADO « connection,requette,recordset » > jusqu'au là pas de problème donc je voulais faire une boucle en > totalisant les montants à 2 positions à 3 positions et à 4 position > en fonction du n° de compte qui est répété plusieurs fois dans ma > base de données et affiché ces totaux de cette façon > 62 2400 > 620 1400 > 6200 1000 par exemple ect..... > J'ai essyé avec do while not rst.eof > Cpt=left(compte,3) > Do while left(compte,3)=cpt > ----- > ----- > Loop > Total 62 . > Loop > Et à chaque fois un message s'affiche disant que le recordset eof ou > quelque chose comme çà. > Quelqu'un pourrait il m'aider de réalisé mon prg. > Merci d'avance.
Ton enoncé n'est pas des plus clairs, mais je crois piger ce que tu voudrais faire. Saches d'abord qu'un moteur de bases de données intègre des fonctions de sommation et de regroupement qui font facilement la sommes de montants d'un compte - et qui sont beaucoup plus rapides que de parcourir les enregistrements compte par compte. Tout se passe dans la chaine SQL de la connexion. Imginons une table avec deux colonnes; Compte et Montant
Commençons par un exemple simple - extraire les lignes qui concerne un seul compte la chaine SQL est du style "Select * from MonTable Where Compte='6200'"
Si tu veux tous les comptes commençant par 62, alors cela devient "Select * from MonTable where Compte like '62%'" (Le pourcentage( %) est semblable au * - et selon le moteur de BdD, il faut mettre * à sa place)
Déjà tu pourras faire une somme par programmation avec rst.movefirst while not rst.eof Somme=Somme+ rst.fields("Montant").Value rst.movenext wend
Cependant on pourra le faire plus simplement avec "Select SUM(Montant) as Somme From MonTable where Compte like '62%'" debug.print rst.fields("Somme").Value
Si on veut faire la somme de tous les comptes on fait "Select Compte, SUM(Montant) as Somme From MonTable Group BY Compte" while not rst.eof debug.print rst.fields("Compte").Value, rst.fields("Somme").Value rst.movenext wend