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 :

recherche de dates avec un dataenv


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut recherche de dates avec un dataenv
    1. bonjour à tous
    j'utilise vb6 et access
    j'ai créé un dataenv
    un champ d'une de mes tables est au format date : jj/mm/yyyy
    je veut, si je récupère un mois dans une variable(ex: juin 2011),connaitre le nombre de jours concernés dans ma table,sachant qu'il peut y avoir plusieurs enregistrements pour une même journée
    j'utilise le code suivant :

    .filter="DETDT like '" & datrac & "'"

    DETDT est le nom du champ, datrac le nom de ma variable
    le soucis, c'est qu'il ne compte que les enregistrements au 1 er juin
    j'ai essayé de placer * ou # devant ma variable mais rien y fait
    quelqu'un peut il me secourir ?
    merci d'avance

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Salut
    S'il s'agit bien de comptabiliser les enregistrements qui correspondent au mois et à l'année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim DebutDate As Date, datrac As String, Rqt As String
    datrac = "Juin 2011"
    DebutDate = DateValue("01 " & datrac)
    'nombre d'enregistrements (doublons de jours possibles comptabilisés)
    Rqt = "Select count(*) From LaTable Where Month(DETDT) =" & Month(DebutDate) & " And  Year(DETDT) =" & Year(DebutDate)
    'ou bien le nombre de jours DIFFERENTS
    Rqt = "Select Distinct Count(DETDT) From LaTable Where Month(DETDT) =" & Month(DebutDate) & " And  Year(DETDT) =" & Year(DebutDate)
    'exécuter l'ouverture avec la requête
    TableTemp.Open Rqt, CnX, adOpenStatic, adLockPessimistic
    'afficher le nombre d'enregistrement pour le jour concerné
    MsgBox TableTemp.Fields(0).Value
    TableTemp.Close
    On est bien d'accord que ce code ne te donnera pas la liste des jours concernés.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci beaucoup pour ta réponse rapide ProgElecT

    malheureusement, il me retourne toujour un message d'erreur
    je récupère datrac dans un monthview

    voici mon code :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Command8_Click()
    Dim datrac As String
    Dim datdeb As Date
    mydate = MonthView1.Value
    mymonth = Month(mydate)
    myyear = Year(mydate)
    datrac = MonthName(Month(Format(mydate, "MM YYYY"))) & " " & Year(Format(mydate, "MM YYYY"))
     
    On Error GoTo suite:
    With dataenv
        .QGESTION
        With .rsQGESTION
    suite:
       datdeb = "01 " & datrac
       '.Filter = "DETDT =  '" & datrac & "'"
     .Filter = "DETDT =  '" & datrac & "'" = "DETDT" = "& month(datdeb) & " And Year(DETDT) = " & year(datdeb)"
     
     
           NStat = 0
     
     
            For i = 1 To .RecordCount
     
                NStat = NStat + 1
                .MoveNext
            Next
     
     
     
            MsgBox " Nombre de clients ce mois de " & datdeb & " : " & NStat
    .Filter = ""
    .Close
    merci

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Peux tu nous mettre le contenu de datrac après la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     datrac = MonthName(Month(Format(mydate, "MM YYYY"))) & " " & Year(Format(mydate, "MM YYYY"))
    J'ai des doutes sur la construction de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Filter = "DETDT =  '" & datrac & "'" = "DETDT" = "& month(datdeb) & " And Year(DETDT) = " & year(datdeb)"
    surement un problème de parenthèses.

    DETDT est le nom du champ
    de quel type ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    si je choisi juin 2011 dans la monthview la valeur de datrac est : "juin 2011"

    quand à ma ligne, j'ai du faire une erreur en copier/coller

    voici la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Filter = "DETDT = " & month(datdeb) & " And  = " & year(datdeb)
    DETDT est un champ date

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Dans le post N°3 la variable datdeb n'est pas initialisée, pourtant tu l'utilises dans le filtre
    Motif de l'édit: ne pas tenir compte de la remarque, tu l'initialise bien,
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    mais si
    sur la ligne n°3 je l'initialise :

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    essais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With dataenv
        .QGESTION
        With .rsQGESTION
    suite:
       'datdeb = "01 " & datrac
    datdeb = DateValue("01 " & datrac) '< ----- ICI
    .Filter = "DETDT = " & month(datdeb) & " And  = " & year(datdeb)
    Tes dates sont de la forme, 21 09 2011 ou 21/09/2011 dans ta table ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    la variable datdeb a toujours la bonne valeur mais l'exécution me ramène toours la même erreur

    erreur 3001 etc..

    les dates sont sous la forme 14/06/2011 dans la table

    merci

  10. #10
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    bonjour

    j'ai essayé d'autres solutions
    je me suis dit qu'en spécifiant une date de début et une date de fin je pourrait contourner mon problème
    si je part du principe que ma variable datrac = "01/06/2011" voici mes différents essais et leurs erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    datdeb = "01 " & datrac
    datfin = "31 " & datrac
     
    .Filter = "DETDT >= '" & datdeb & "'"me ramène le nbr d’enregistrements après le 1er juin
    .Filter = "DETDT <= '" & datfin & "'"me ramène le nbr d’enregistrements avant le 30 juin
    .Filter = "DETDT >= '" & datdeb & "' And <= '" & datfin & "'"  ‘ erreur 3001
    .Filter = "DETDT between  '" & datdeb & "' and '" & datfin & "'" ‘ erreur 3001
    vous remarquerez que les 2 premiers fonctionnent mais si je les associent avec and j'ai à nouveau l'erreur 3001
    j'ai aussi essayé avec l'opérateur between sans plus de succès
    je ne sais pas si mon erreur vient de la syntaxe, si un dataenvironnement ne gère pas la comparaison entre 2 dates ou peut être du type de données
    ayant assayé des différents opérateur que je connais, like, between,<>=, j'avoue que je me trouve dans une impasse
    merci

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Salut
    pour trouver la date fin(a toi d'adapter avec tes noms de variables)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim DebutDate As Date, FinDate As Date, DateSoumis As String
    DateSoumis = "AVRIL 2010"
     
    DebutDate = DateValue("01 " & DateSoumis)
    FinDate = DateAdd("m", 1, CDate("01" & Right(CStr(DebutDate), 8))) - 1  'dernier jour du mois de DebutDate
    le dernier bouvant être 31,30,29,28
    essais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Filter = "DETDT >= #" & datdeb & "# And DETDT <= #" & datfin & "#"
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci beaucoup ProgElecT
    ça marche du tonnerre !!!
    si j'ai bien compris, mes variables doivent êtres au format date mais on fait l'opération sur une chaine de caractère

    merci encore pour ta gentillesse et le temps passé sur ce projet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche sur date avec une colonne de type varchar
    Par Cladjidane dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/08/2008, 22h35
  2. recherche sur plage date avec format different
    Par maysa dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/02/2008, 09h38
  3. recherche tous utilisateurs avec date d'expiration
    Par geriler dans le forum VBScript
    Réponses: 4
    Dernier message: 05/02/2008, 17h32
  4. [MySQL] comment rechercher une date au format datetime avec une date au format date
    Par Menoly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/06/2007, 10h14
  5. rechercher un nom avec une date
    Par fins51 dans le forum VBA Access
    Réponses: 9
    Dernier message: 09/04/2007, 19h27

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