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

Access Discussion :

sql en vba qui ne donne pas les bonnes données [AC-2013]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut sql en vba qui ne donne pas les bonnes données
    Bonjour,

    Ci-dessous mon code pour exécuter un sql qui ne fonctionne pas si je rajoute une condition, c'est à dire que si j'arrête le sql au premier WHERE (NUME) ca fonctionne et si j'ajoute la condition sur la prestation, cela fonctionne mais ne tient plus compte de la condition numéro 1..
    J'ai essayé de mettre une varable var = Me.NUME mais idem ca fonctionne uniquement si c'est la seule condition.

    Merci pour votre aide, car je ne comprends vraiment pas..

    C'est à dire qu'au lieu d'avoir :
    N0Info Ech PrestationAd AmianteFin
    45 1 AMIANTE Non detecté
    45 3 AMIANTE ET HAP QUANTITATIF Non detecté
    45 4 AMIANTE ET HAP QUANTITATIF POSITIF 5,6 MG/KG
    45 4 AMIANTE ET HAP QUANTITATIF POSITIF 8 MG/KG
    45 5 AMIANTE ET HAP QUANTITATIF Non detecté

    J'ai ca : alors que le n°38 contient plus de lignes en plus
    N0Info Ech PrestationAd AmianteFin
    44 4 AMIANTE
    38 5 AMIANTE
    45 1 AMIANTE Non detecté
    45 3 AMIANTE ET HAP QUANTITATIF Non detecté
    45 4 AMIANTE ET HAP QUANTITATIF POSITIF 5,6 MG/KG
    45 4 AMIANTE ET HAP QUANTITATIF POSITIF 8 MG/KG
    45 5 AMIANTE ET HAP QUANTITATIF Non detecté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sql = sql & " SELECT AdPrestation.N0Info, AdPrestation.Ech, AdPrestation.PrestationAd, AdPrestation.AmianteFin"
    sql = sql & " FROM AdPrestation"
    sql = sql & " WHERE AdPrestation.[N0Info] =" & [Forms]![Affaire]![NUME] & " And AdPrestation.[PrestationAd] Like 'AMIANTE*' Or AdPrestation.[PrestationAd] = 'AMIANTE';"
     
    Set qry = db.CreateQueryDef("rqtemporaire1", sql)
    Set rst = qry.OpenRecordset

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Bonjour,


    conditionA AND conditionB OR conditionC
    n'est pas la même chose que

    conditionA AND (conditionB OR conditionC)

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut c'est pareil
    Bonjour,

    Merci beaucoup.

    Je l'ai fait également en enlevant le Ou, juste en laissant like "AMIANTE*"
    et également :
    sql = sql & " WHERE (AdPrestation.N0Info =[Formulaires]![Affaire]![NUME] AND AdPrestation.PrestationAd Like 'AMIANTE*');"
    et là j'ai trop peu de paramètre 1 attendu

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    Citation Envoyé par alea83 Voir le message
    Bonjour,

    Merci beaucoup.

    Je l'ai fait également en enlevant le Ou, juste en laissant like "AMIANTE*"
    et également :
    sql = sql & " WHERE (AdPrestation.N0Info =[Formulaires]![Affaire]![NUME] AND AdPrestation.PrestationAd Like 'AMIANTE*');"
    et là j'ai trop peu de paramètre 1 attendu
    je veux bien, mais ce code n'a rien à voir avec le précédent:
    sql = sql & " WHERE AdPrestation.[N0Info] =" & [Forms]![Affaire]![NUME] & " And AdPrestation.[PrestationAd] Like 'AMIANTE*'
    si tu inclus le champ du formulaire dans la requête au lieu de sa valeur comme précédemment, le message d'erreur s'explique
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut Super vraiment merci
    Re Bonjour,

    Ca fonctionne vraiment merci à vous je vais pouvoir passer à la suite.

    D'aprés vous faut il que je mette dans le code le fait de supprimer la requete temporaire car j'ai remarqué que quelques fois elle restait et ca bloquait si on refaisait l'action ?

    Merci encore

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    pour répondre il faudrait le code complet ... mais si la requête existe, plutôt que la créer à chaque fois, modifie seulement le SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set qry = db.QueryDefs("rqtemporaire1")
    qry.SQL = sql
    Set rst = qry.OpenRecordset
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. VBA - Countif / Ne renvoit pas les bonnes valeurs
    Par Marion_Otz dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/11/2017, 17h31
  2. requete sql/php qui ne respecte pas les conditions
    Par bilcosby dans le forum Requêtes
    Réponses: 10
    Dernier message: 30/10/2015, 16h17
  3. un slider dynamique qui ne sélectionne pas les bonnes images
    Par caema dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/01/2014, 08h29
  4. Requete qui n'affiche pas les bonnes valeurs
    Par snips67 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/01/2010, 10h54
  5. [SQL 2000]Where in qui ne comprend pas les listes
    Par zooffy dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 02/05/2007, 16h36

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