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 :

pas de valeur dans ma requête [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut pas de valeur dans ma requête
    Bonjour,
    Je rencontre un problème dans une requête qui est simple pourtant. Elle comporte 2 champs :
    - 1 champ "regroupement" appelant 1 valeur particulière d'une table
    - 1 champ "compte"

    Dans le cas où j'ai, dans le champ de la table présence de cette valeur, le compte a lieu comme il faut.
    Par contre, dans le cas ou le compte valeur = 0 , le compte n'a pas lieu (je voudrais que ca me sorte un zéro justement, mais la...rien...) Comment faire?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    je ne suis pas certain de comprendre la manière dont tu comptes tes enregistrements. Tu peux par exemple utiliser la propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enregistrement.RecordCount
    où enregistrement est un objet de type Recordset par exemple. Dans ce cas, si la requête ne retourne rien, RecordCount retournera 0.

    En espérant que cela t'aide un peu,
    Salutations,

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci, mais il faut que je le mette ou?
    La si je visionne en SQL, voila ce que j'obtiens actuellement :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Count([Reglementation exigences].SituationSiège) AS CompteDeSituationSiège, reg_situationSiège.situation
    FROM reg_situationSiège INNER JOIN [Reglementation exigences] ON reg_situationSiège.situation = [Reglementation exigences].SituationSiège
    GROUP BY reg_situationSiège.situation
    HAVING (((reg_situationSiège.situation)="NCT"));

    Cette expression correspond au compte du nombre de "NCT" trouvé dans le champ SituationSiège de la table Reglementation exigences...

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    la solution que je te propose s'insère directement dans le code VBA. Par exemple, le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim table As DAO.Database
    Dim enregistrement As DAO.Recordset
     
    Set table = CurrentDb
    Set enregistrement = table.OpenRecordset(sql, dbOpenSnapshot)
     
    if enregistrement.RecordCount = 0 then
         msgbox "Aucun enregistrement trouvé!"
    end if
     
    Set enregistrement = nothing
    effectue la requête nommé "sql" et sauvegarde tous les champs trouvés dans la variable enregistrement. Ensuite, il est possible de tester le nombre d'élément de cette variable. Si la requête ne retourne rien, alors la propriété recordcount vaudra 0.

    Cette solution a bien fonctionné dans mon cas, mais il est certain qu'il existe d'autres manières de procéder.

    Bonne continuation,
    Salutations,

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je comprends pas pourquoi, mais j'arrive pas à trouver le moyen de me rendre en VBA lorsque je suis dans ma requête

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    C'est l'INNER JOIN qui pose problème. Essaye avec un LEFT JOIN ou RIGHT JOINT suivant ce que tu souhaites

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    c'est parce que la requête est éditée dans l'outil d'édition SQL qui est différent de l'environnement de développement du VBA (c'est deux choses séparées). Pour pouvoir utiliser le code ci-haut, tu dois le lier à un formulaire; par exemple à l'ouverture d'un formulaire ou encore au clic d'un bouton.

    Par exemple, en mode création, en sélectionnant un bouton, tu peux aller dans l'onglet "événements" des propriétés. Puis, de là, clic sur le petit bouton [...] à côté de l'événement "Sur clic", puis choisi l'option "Générateur de code". Tu seras alors en mesure d'entrer le code VBA associé au clic du bouton et donc d'utiliser le code donné plus haut.

    Salutations,

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    J'ai remplacé INNER par LEFT, ça marche nikel Merci à vous deux

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2012, 13h14
  2. Entrer une valeur dans une requête en VBA
    Par Cyriusix dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/05/2008, 08h48
  3. COmment modifier des valeurs dans une requête?
    Par thibouille dans le forum Bases de données
    Réponses: 20
    Dernier message: 26/02/2008, 16h43
  4. numéroter les lignes ayant la même valeur dans une requête
    Par raiamanu dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 12/10/2007, 10h49
  5. Type enum et pas de valeur dans le champs
    Par GreenGoblin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 23/03/2006, 16h09

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