IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Comment trouver les données selon cette condition?


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 27
    Points
    27
    Par défaut Comment trouver les données selon cette condition?
    Salut,
    j'ai ma base Access liée à vb6 via ADO,

    je veux rechercher tous les enregistrements dont le niveau='" & text1 & "', le sexe=F, date_inscription < 24/11/année actuelle, ainsi que les date _naissance dont les mois sont: 1 , 2 et 3. et l'année de naissance = année actuelle - 5.
    j'ai essayé:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql="select * from eleves where niveau='" & text1 & "' and sexe='F' and month(date_naissance) between 1 and 3 and date_inscription < 24/11/year(now) and year(date_naissance)=year(now)-5"
    mais ça marche pas.
    Merci.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Dans une clause WHERE, les dates doivent être au format US :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE LADATE = MM/JJ/AAAA

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut
    Citation Envoyé par pc75 Voir le message
    Bonjour,

    Dans une clause WHERE, les dates doivent être au format US :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE LADATE = MM/JJ/AAAA
    Pas systématiquement, en tout cas chez moi JJ/MM/AAAA ne pose pas probléme.

    @abouilyas
    J'essayerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "select * from eleves where niveau='" & text1 & "' and sexe='F' and (month(date_naissance) between 1 and 3) and date_inscription < 24/11/year(now) and year(date_naissance)=year(now)-5"
    mise entre partentaise de la condition between

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut
    Pas systématiquement, en tout cas chez moi JJ/MM/AAAA ne pose pas probléme.
    Avec une base Access ?

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut pc75

    Oui il s'agit bien de BD Access (V7), les 3 requêtes suivantes (à tour de rôle) fonctionnent sans problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim DebutDate As Date, FinDate As Date
    DebutDate = CDate("25/10/1955")
    FinDate = DateAdd("m", 1, CDate("01" & Right(CStr(DebutDate), 8))) - 1 'dernier jour du mois de DebutDate
     
    Rqt = "Select Sum(Champ3Integer) From Principal Where Champ4DateTime >=#" & Format(DebutDate, "MM/DD/YYYY") & "#"
    'Rqt = "Select Sum(Champ3Integer) From Principal Where Champ4DateTime >=#" & Format(DebutDate, "DD/MM/YYYY") & "#"
    'Rqt = "Select Sum(Champ3Integer) From Principal Where Champ4DateTime >=#" & DebutDate & "# and Champ4DateTime <=#" & FinDate & "#"
    Je m'attendais qu'au moins 1 des formatages provoque une erreur, je suis surpris que les 2 formatages de date (inversion mois/jour) fonctionne sans erreur et donne l'un et l'autre le résultat attendu.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Les dates doivent être entre #.


    Philippe
    Dernière modification par Invité ; 04/09/2011 à 18h25.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Salut,
    merci de m'avoir répondu
    mais ça marche toujours pas,
    j'ai bien essayé toutes vos propositions mais rien ne change.
    Peut être n'étais-je pas assez claire
    Ce que je veux faire c'est un recensement des élèves selon le niveau, dont le sexe est F, la date d'inscription est inférieure au 24/11 de chaque année, l'âge est 6 ans soit les dates de naissance dont les mois sont 1,2 et 3 et l'année = year(now)-5 ainsi que les dates de naissance dont les mois sont entre 4,12 et l'année = year(now)-6
    par exemple
    élève 1:
    date de naissance 12/02/2001 date inscription 10/09/2010 n'est pas compté. la date de naissance ne répond à la condition year(now)-5 ou year(now)-6. .
    élève 2:
    date de naissance 10/02/2006 date inscription 23/11/2009 compté. condition réalisée: le mois est netre 1 et 3 est l'année de naissance= year(now)-5.
    élève 3:
    date de naissance 24/08/2005 date inscription 12/09/2011 compté.condition réalisée: le mois est entre 4et 12 est l'année de naissance= year(now)-6.
    élève 4:
    date de naissance 24/08/2005 date inscription 24/11/2011 non compté.la condition n'est pas réalisée: la date d'inscription est égale au # 24/11/year(now) #.
    Merci.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par abouilyas Voir le message
    ,
    j'ai bien essayé toutes vos propositions mais rien ne change.
    Remets la requête, pour voir si tu as bien implanté les différentes propositions.

    Philippe

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Bonjour

    Citation Envoyé par Philippe JOCHMANS Voir le message



    Remets la requête, pour voir si tu as bien implanté les différentes propositions.

    Philippe
    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
     
    'Filles ayant 6 ans
     
    Connection
    sql = "select * from eleves where niveau='" & text1 & "' and sexe='F' and (month(date_naissance) between 1 and 3) and year(date_naissance)=year(Now())-5 and (month(date_naissance)between 4 and 12) and year(date_naissance)=year(Now())-6 and date_inscription < 11/24/year(Now()) "
     
     
    If rs.State = 1 Then rs.Close
    rs.Open sql, DB, 1, 2
     
    Dim wrdapp  As Excel.Application
    Dim wrdDoc As Excel.Workbook
     
    Set wrdapp = New Excel.Application
    Set wrdDoc = wrdapp.Workbooks.Open(App.Path & "\rece.xls")
     
     
    wrdDoc.Application.Cells(33, 4).Value = rs.RecordCount
    wrdapp.Visible = True
     
    Set wrdapp = Nothing
    Set wrdDoc = Nothing
    Le resultat:
    la cellule (33,4) de la feuille Excel affiche 0, alors que j'ai dans la table eleves:
    fille1:
    date_naissance=02/01/2006 (condition du mois de naissance entre 1 et 3) et année de naissance = Year(now())-5
    date_inscription=06/01/2010 condition de date_inscription < 24/11/year(now())
    Fille2:
    date_naissance=02/11/2005 condition du mois de naissance entre 4 et 12) et année de naissance = Year(now())-6
    date_inscription=06/01/2009 condition de date_inscription < 24/11/year(now())

    N.B:J'ai essayé les formats de date mm/dd/yyyy et dd/mm/yyyy mais rien ne change. Les signes # date # afiiche message d'erreur." syntax error in date in query expression..."

    Merci.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2015, 18h08
  2. Comment afficher les données sous cette forme?
    Par hittony dans le forum Cognos
    Réponses: 0
    Dernier message: 07/06/2010, 16h23
  3. Comment récupérer les données de cette page web (par exemple)
    Par emulamateur dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/10/2009, 19h29
  4. [cr 8.5] comment exploiter les données d'un "array"
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 09/06/2005, 14h03
  5. [JTable] Comment récuperer les données d'un fichier texte ?
    Par Makunouchi dans le forum Composants
    Réponses: 2
    Dernier message: 03/05/2005, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo