Amélioration du code

Signaler
Messages postés
53
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
18 août 2008
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour

je suis entrain de développer un logiciel de gestion des pharmacies. la pharmacie travail 24h/24h beaucoup de personne peuvent intervenir dans la journée et la nuit je voudrais faire un filtre pour connaitre les ventes de chaque personne filtre entre deux dates, date début date fin. et filtre entre deux heures différentes heures début heure fin. j'utilise VB 6.0 base de donnée access.
j'ai trouvé le code pour déterminer date début date fin qui marche trés bien.
je voudrais si quelqu'un peut nous aider à faire le code entre deux heures différentes heure début heure fin pour connaitre les ventes d'une personne durant des heures.
voila le code.
les champs sont: Datevente, Libellémedicament, Quantité, Prix

Private Sub Cmdliste_Click()
Dim strliste As String
strliste = "Dim strliste As String"
strliste "SELECT Vente.DateVente, LotStock.LibelleMedicament, ventemed.Quantité, Vente.MontantVente FROM Vente INNER JOIN (LotStock INNER JOIN ventemed ON LotStock.CodeMedicament ventemed.codemed) ON Vente.NumeroVente = ventemed.numVente"
Adodc1.RecordSource = strliste
Adodc1.Refresh
End Sub

Private Sub CmdOK_Click()
On Error GoTo rech
Dim strQuery As String
strQuery "SELECT Vente.DateVente, LotStock.LibelleMedicament, ventemed.Quantité, Vente.MontantVente FROM Vente INNER JOIN (LotStock INNER JOIN ventemed ON LotStock.CodeMedicament ventemed.codemed) ON Vente.NumeroVente = ventemed.numVente where Vente.DateVente between # " & Year(Txtdate1.Text) & "/" & Month(Txtdate1.Text) & "/" & Day(Txtdate1.Text) & " # and # " & Year(Txtdate2.Text) & "/" & Month(Txtdate2.Text) & "/" & Day(Txtdate2.Text) & " # "
Adodc1.RecordSource = strQuery
Adodc1.Refresh
Exit Sub
rech:
MsgBox Err.Description
End Sub

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Year(Txtdate1.Text) & "/" & Month(Txtdate1.Text) & "/" & Day(Txtdate1.Text)
se dit:
Format$(Txtdate1.Text , "YYYY\/MM\/DD")

pour l'heure... ajoutes la simplement :

#2008/02/12 15:53:08#

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
27
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
25 février 2008

bonjour

pour l'heure.... s'il ajoute l'heure dans sa requete
ca ne marchera pas.
je veux connaitre tous les champs de l'année 2000 a 2006
comprit entre 15/00/00 et 16:00:00

requete sql entre #2000/00/ 15:00:00# et #2006/02/12 16:00:00#

elle prendra toute les dates comprisent entre celles- ci y compris
2002/00/ 11:00:00 par exemple ce qui n'est pas le but de la requete

methode debutant avec code lourdos sans between
avec 2 champ date1 et date2 type text dans acess
avec 4 variables as string dans vb
et qui marche
filtrage dans where:
sql = " SELECT date1, date2,produitmedicament frOM Table1 _
where date1>'" & Jmin "' and date1 <'" & JMAX & "' and date2 >'" & Hmin & " ' and date2 <'" & HMax & " 'order by date1"

je sais qu'il y a mieux comme code et forcemment plus simple ne
connaissant pas le sql et le vb mais c'est pour donner un coup
de main pour le fitre et sur ma machine sa marche.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
on doit pouvoir faire en gros:

...
WHERE YEAR(Champ1) BETWEEN 2000 AND 2006
AND HOUR(Champ1) BETWEEN 15 AND 16

Renfield
Admin CodeS-SourceS- MVP Visual Basic