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

VBA Access Discussion :

Récupérer le résultat d'une requête SQL (count)


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Récupérer le résultat d'une requête SQL (count)
    Bonjour tout le monde,

    J'ai cherché sur le forum mais je n'ai rien trouvé...
    Je voudrais compter le nombre d'enregistrement d'une table pour une date précise.

    J'utilise un recordset:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim res as recordset
     
    set res = currentddb.openrecordset ("Select count(Date) from `ma table` where Date = " & la_date_textbox & " ")
    Il me semble que la requete est bonne mais je voudrais afficher le résultat dans une msgbox. Et là, je bloque...

    Si quelqu'un pouvait m'aider,
    merci d'avance

  2. #2
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    Salut niano,

    Essaye plutot ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim res as recordset
     
    set res = currentddb.openrecordset ("Select Date from ma table where Date = #" & la_date_textbox & "# ;")
     
    res.movelast
    res.movefirst
     
    if res.recordcount <> 0 then
       Msgbox("Nombre de dates :" & res.recordcount)
    else
       Msgbox("Aucune date")
    endif
    La propriete recordcount compte le nombre d'enregistrements d'un recordset.

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu pourrais essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox DCount("*","MaTable","MaDate = #" & Format(Me.txtDate,"mm/dd/yyyy") & "#")
    Ou a peu-près...

    Bon courage,

    PGZ

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Je viens de tester vos deux solutions, et même en modifiant quelque petits points, cela ne fonctionne pas.

    Les messages sont soit tous "1", soit tous "0" alors que j'ai rentré pas mal de date dans ma table.

    Je continue mes test mais je ne vois pas trop comment faire...

    Merci pour vos premiers éléments de réponses.

    Edit: je viens de créer un table "test" avec une colonne primary key "id" et une seconde "test" (de type texte).

    Avec ce code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim res as recordset
    set res = currentdb.openrecordset ("select * from test")
    msgbox res.recordcount
    ...j'obtiens soit "0" lorsque je n'ai pas d'entrée dans ma table, soit "1" lorsque j'ai une, deux ou trois entrées...

    Quelqu'un a une idée ?
    Peut-être faut il spécifier au recordset de lire toute la table ? ou un truc dans le style...

  5. #5
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    hum,

    essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim res as recordset
     
    set res = currentdb.openrecordset ("Select Date from ma table where Date = #" & la_date_textbox & "# ;")
     
    while not res.eof
    res.movenext
    wend
     
    if res.recordcount <> 0 then
       Msgbox("Nombre de dates :" & res.recordcount)
    else
       Msgbox("Aucune date")
    endif

  6. #6
    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,

    Deux choses :

    - 1 - Tu as un champ nommé Date => c'est un mot réservé d'Access

    - 2 - Dans un clause WHERE, la date doit être au format US => mm/jj/aaaa

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Je viens de trouver (enfin vous venez de trouver ^^):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim res as recordset
     
    set res = currentdb.openrecordset("SELECT * FROM ma_table WHERE Date = #" & me.date_textbox.value & "# ")
     
    while not res.eof
    res.movenext
    wend
     
    msgbox res.recordcount
    La messagebox m'affiche bien le nombre d'enregistrement correspondant à une date précise.

    Merci à tous pour votre aide.
    Bon courage pour la suite.

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

Discussions similaires

  1. Récupérer le résultat d'une requête sql
    Par javast dans le forum JPA
    Réponses: 2
    Dernier message: 27/05/2011, 10h01
  2. Réponses: 5
    Dernier message: 26/02/2008, 12h45
  3. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 15h25
  4. [JTable] Récupérer le résultat d'une requête SQL
    Par malik1982 dans le forum Composants
    Réponses: 10
    Dernier message: 08/07/2006, 19h52
  5. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07

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