Calcul du montant entre deux date

320C Messages postés 94 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 janvier 2014 - 20 févr. 2012 à 15:01
320C Messages postés 94 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 janvier 2014 - 15 sept. 2012 à 22:17
Salut à tous!
Je conçu une base de donnée dont j'ai utilisé une connexion ADO
comme ceci
Dim cn As New ADODB.Connection
Dim rsantecedent1 As New ADODB.Recordset
cn.Provider = "Microsoft.jet.oledb.4.0"
cn.ConnectionString = "c:\data\fiche-medico.mdb"
cn.Open
rsantecedent1.Open "select * from antecedent1", cn, , adLockOptimistic

Dans la Base de données, dans la table commande j'ai le champs montant soit "montant" et la date de commande soit "datecmd"
ainsi ma question est celle ci...: Je besoin faire une requete qui me donnéré la somme de tout le montant payé entre deux date differentes par un client.

Et la je fais cette requete
SELECT * FROM Commande  WHERE  cdate(datecmd) BETWEEN cdate(' " & Text2.Text & " ') AND cdate(' " & Text3.Text & " ') and matr =' " & Combo1.Text & " ' "


où text2 fait fonction du première date et text3 fait fonction de deuxième date. ainsi je précise qu'il selectionne cela pour le client dont son matricule est repris sur le combo1.
et j'ai mis cdate pour convertir en date les données se trouvant dans le textbox.

Mais cela ne marche pas, aucune répose...pas une réaction...et la je ne comprend pas.
J'ai vraiment besoin de votre aide.

Merci pour l'aide.

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
20 févr. 2012 à 16:58
Bonjour,
De quel type (dans ta table) est ton champ qui semble être datecmd ?
Si de type date :
1) pas de cdate(datecmd), mais datecmd
2) les critères de date (dans ton between) sont à exprimer en format mm/dd/yyyy et être encadrés du signe # et sans guillemets (puisque non des strings).

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
320C Messages postés 94 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 janvier 2014
21 févr. 2012 à 06:30
Bien
Le champs montant est de type numérique et la table datecmd est de type date/heure étant donné que la base de donnée est conçue sous Ms Access 2007.
J'ai écrit cdate dans ma requete pour convertir ce qui se trouve dans le textbox en date.
voici c dont j'ai lis dans le boutons de commande nommé calcu
Private Sub calcu_Click()
Dim cn As New ADODB.Connection
Dim rscomd As New ADODB.Recordset
cn.Provider = "Microsoft.jet.oledb.4.0"
cn.ConnectionString = "c:\blgr\boulangerie.mdb"
'************Requete pour trouver la somme de montant************
requete "  SELECT sum(montant) FROM Commande  WHERE  cdate(datecmd) BETWEEN cdate(' " & Text2.Text & " ') AND cdate(' " & Text3.Text & " ') and matr' " & Combo1.Text & " ' "
cn.Open

rscomd.Open requete, cn
'****************Afficher la totalité du montant dans le label10***************
       Label10.Caption = rscomd!montant
rscomd.Close
cn.Close
End Sub


Voilà, je crois que ma question est explicite maintenant.

Merci et bonne journée à tous!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
21 févr. 2012 à 07:00
Si de type date :
1) pas de cdate(datecmd), mais datecmd



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
320C Messages postés 94 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 janvier 2014
22 févr. 2012 à 01:05
ien
en fait j'allais dire :
Le champs montant est de type numérique et le champs datecmd est de type date/heure étant donné que la base de donnée est conçue sous Ms Access 2007.
J'ai écrit cdate dans ma requete pour convertir ce qui se trouve dans le textbox sur le fomulaire en date.
voici ce dont j'ai mis dans le boutons de commande nommé calcu

Code Visual Basic :
Private Sub calcu_Click()
Dim cn As New ADODB.Connection
Dim rscomd As New ADODB.Recordset
cn.Provider = "Microsoft.jet.oledb.4.0"
cn.ConnectionString = "c:\blgr\boulangerie.mdb"
'************Requete pour trouver la somme de montant************
requete "  SELECT sum(montant) FROM Commande  WHERE  cdate(datecmd) BETWEEN cdate(' " & Text2.Text & " ') AND cdate(' " & Text3.Text & " ') and matr' " & Combo1.Text & " ' "
cn.Open

rscomd.Open requete, cn
'****************Afficher la totalité du montant dans le label10***************
       Label10.Caption = rscomd!montant
rscomd.Close
cn.Close
End Sub


Voilà, je crois que ma question est explicite maintenant.

Merci à tous pour l'aide et bonne journée à tous!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
22 févr. 2012 à 07:41
Rhooooo !
Tyu lis ce qui t'est répondu ?
- La clause WHERE doit être suivie d'un champ de ta table
- cdate(datecmd) n'est pas un champ. datecmd en est un

et relis aussi ce dont jhe t'ai parlké plus haut :
De quel type (dans ta table) est ton champ qui semble être datecmd ?
Si de type date :
1) pas de cdate(datecmd), mais datecmd
2) les critères de date (dans ton between) sont à exprimer en format mm/dd/yyyy et être encadrés du signe # et sans guillemets (puisque non des strings).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
320C Messages postés 94 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 janvier 2014
15 sept. 2012 à 22:17
salut !
Je viens de faire comme dit, mais excuse moi encore de vous deranger encore une fois de plus car je fais ainsi dans les codes
rsclint.Open "SELECT commande.matr, commande.nomclient, commande.montant, commande.reste, commande.ristobt, commande.datecmd FROM commande WHERE (((commande.matr)like'" & Combo1.Text & "') AND ((commande.datecmd) Between (# Text2.Text #) And (# Text3.Text #)))", cnxion, 1, 2


Mais Helas! cela ne marche pas ...
Dans ma table commande le champs datecmd est du type date, la base de donnée est en Access extension mdb.

Si je laisse le requete juste pour selectionner par matr cela marche mais si j'ajoute la partie de date erreur qui dit

erreur de syntaxe dans la date dans l'expression
(((commande.matr)like'" & Combo1.Text & "') AND ((commande.datecmd) Between (# Text2.Text #) And (# Text3.Text #)))"


SVP Aidez moi, je vous en prie...aidez moi
Merci[quote][list]



Théom@f
0