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

Requêtes et SQL. Discussion :

[fonction]compter le nombre d'element répondant aux criteres


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut [fonction]compter le nombre d'element répondant aux criteres
    Bonjour je souhaiterai savoi si il y a une méthode qui permette de compter le nombre d'élément répondant aux critère de ma reuqtes SQL. Car je n'arrive pas a utiliser la méthode count dans ACCESS.
    Je vous remercie

  2. #2
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Ta requete tu en fais quoi après, tu t'en sers pour créer un recordset ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    Je souhaiteria retourner le resultat du count , ou de la fonction aui le permet, dans une txtbox dan smon formulaire

  4. #4
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Il y surement plus simple mais voila ce que je fais et qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     s = "SELECT ......;"
     Set rs = db.OpenRecordset(s, DB_OPEN_SNAPSHOT)
     
    rs.MoveLast
    nombr =  rs.RecordCount 'nombr étant le nombre de lignes
    Prend bien soin de définir tes variables et ton recordset

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup je vais faire cela.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    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
     
    Dim mbrdebut As Integer
    Dim mbrfin As Integer
    Dim duree As Integer
    Dim s As String
    Dim rs As Recordset
    Dim Db As Database
    Dim Qd As DAO.QueryDef
     
    mbrdebut = Me.txtbox_du
    mbrfin = Me.txtbox_Au
     
     
    s = "SELECT * FROM CLIENT WHERE NUMERO-CLIENT >= " & mbrdebut & " AND NUMERO-CLIENT <= " & mbrfin & "AND  Raison = 1 AND DUREE_VISITE_1 = " & Me.txtbox_Duree & " ;"
    Set rs = Db.OpenRecordset(s, DB_OPEN_SNAPSHOT)
    rs.MoveLast
    nombr = rs.RecordCount  'nombr étant le nombre de lignes
    Qd j'exeute ce morceau de code, Access me dit : Variable objet ou variablede bloc With non definie.

    Cependant je ne voit pas ou est l'erreur peut -etre que je n'est pas assez de recul, quelqu'un pourrai-til me dire si il voit l'erreur?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Il ne manque pqs un "set db as currentdb" ou un truc comme ça, vérifie ma is je crois qu'il faut aussi déclarer ta variable db comme current db.

  8. #8
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Tu n'as pas déclaré nombr !!

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    après avoir fait plusieur modification sur le codeje n'arrive toujour pas a execute le 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
    Dim mbrdebut As Integer
    Dim mbrfin As Integer
    Dim duree As Integer
    Dim cptas As Integer
    Dim rq As String
    Dim rs As DAO.Recordset
    Dim Db As Database
    Dim Qd As DAO.QueryDef
    Dim nmbre As Integer
     
    cpt = 1
    mbrdebut = Me.txtbox_du
    mbrfin = Me.txtbox_Au
     
    rq = "SELECT * FROM CLIENT WHERE CLIENT!NUMERO-CLIENT >= " & mbrdebut & " AND CLIENT!NUMERO-CLIENT <= " & mbrfin & " AND  CLIENT!Raison = 1 AND CLIENT!DUREE_VISITE_1 = " & Me.txtbox_Duree & ";"
    Set rs = CurrentDb.OpenRecordset(rq, dbOpenSnapshot)
    rs.MoveLast
    nombr = rs.RecordCount  'nombr étant le nombre de lignes
    Me.txtbox_MaladieMentale = nombr
    Lors de l'execution il mindique uen erruer : Trop peu de parmètre . 2 attentue . et lors du debogague la ligne surligné est la ligne

    Set rs = CurrentDb.OpenRecordset(rq, dbOpenSnapshot)

    Seulement pour moi il y a deux parametre. Une autre partie de mon code (un autre formulaire uilise la meme ligne, fonctionne correctement, jen vien donc a penseer que l'erreur es tsitué avant.
    Quels est votre avis?

  10. #10
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Modifie déjà

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  11. #11
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TxtBoxNbClient= DCount("[NUMERO-CLIENT ]", "CLIENT", " [NUMERO-CLIENT ] >= " & [mbrdebut] & " AND [NUMERO-CLIENT ]<= " & [mbrfin] & " AND Raison='1'" & " AND [DUREE_VISITE_1]= " & [txtbox_Duree])

  12. #12
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM CLIENT WHERE CLIENT!NUMERO-CLIENT ...
    Tu devrais changer le nom du champs NUMERO-CLIENT en => NUMERO_CLIENT, pour Access, CLIENT!NUMERO-CLIENT est une opération de soustraction: le champ NUMERO - le champs CLIENT.

    Je n'ai jamais testé un nom de champs aussi ambigu, mais tu veux vraiment utiliser le nom NUMERO-CLIENT, essaie le entre crochets, i.e.:

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rq = "SELECT * FROM CLIENT WHERE CLIENT![NUMERO-CLIENT] >= " & mbrdebut & " AND CLIENT![NUMERO-CLIENT] <= " & mbrfin & " AND CLIENT!Raison = 1 AND CLIENT!DUREE_VISITE_1 = " & Me.txtbox_Duree & ";"

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    Je vous remercie de votreaide je vais essayer les différentes méthodes que vous m'avez communiqué

    En effet le nom de champ NUMERO-CLIENT est ambigue, je suis tout a fait d'accord avec vous, cependant je modifie une base de donnée déja existante, je ne vais donc pas modifier le champ car il faudrait que je vérifie tous les formulaire ayant un rapport avec ce numéro, ainsi que les requetes

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    Je vien d'essayer la solution de "ft035580" que je remercie beaucoup car sa solution ma permis de resoudre mon probleme.
    Merci aussi a tous ceux qui m'ont donné des conseils.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    lorsque j,ai effectue le test, il n'y avait pas de membre repondant au critèe et le resultat indi quai bien 0.
    Cependant lorsqu'il y a des membres répondant aux critèes un message d'erreur indiquant type de donnée incompatible avec l'expression du critère.
    Une idée?

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    Je vien de trouver la sollution au probleme , en fait il faut rentrer le numero de raison en tant que valeur numérique et nom en tant que texte.

    Il faut donc enleverles ' 1 ' qui entoure le chiffre.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/05/2011, 14h38
  2. compter le nombre d'element dans une page
    Par the-destroyer dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/10/2009, 19h24
  3. Compter le nombre d'element differents dans un vecteur
    Par karim_chriqi dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/08/2009, 21h58
  4. [MySQL] compter le nombre d'elements dans différentes colonnes
    Par charles9 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/01/2009, 16h15
  5. Compter le nombre d'elements d'un range d'un autre fichier
    Par arnogue dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/03/2008, 21h13

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