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 :

Probléme de requete


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 25
    Points
    25
    Par défaut Probléme de requete
    Bonjour à vous tous

    J'ai un problème avec une requête : la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Filtre_C1 = "(T_Resultats.[Endroit du prélèvement] = 'Cellule #1')"
    "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] " + _
                   "FROM T_Resultats HAVING " + Filtre_C1 + ";"
    Pas d'erreur de compilation ou d'exécution .
    Mais elle ne me trouve pas le max de 'Matieres_en_suspension ': elle me donne une valeur dans la table mais pas la bonne

    Avez vous une idée de mon problème ?? Comment deboguer ??
    merci à vous

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonsoir !

    Elle me parait bien étrange ta requête...
    Citation Envoyé par johnrando Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Filtre_C1 = "(T_Resultats.[Endroit du prélèvement] = 'Cellule #1')"
    "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] " + _
                   "FROM T_Resultats HAVING " + Filtre_C1 + ";"
    Avez vous une idée de mon problème ?? Comment deboguer ??
    merci à vous
    Si tu veux obtenir le "Max" d'une valeur dans une table, il s'agirait plutôt d'une requête du type suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre_C1 = "SELECT EndroitDuPrelevement, Max(MatieresEnSuspension) AS MaxMatiere FROM tblResultats GROUP BY EndroitDuPrelevement"
    ... de plus, je ne comprends pas le "+ Filtre_C1 + ";"

    Peux-tu nous en dire un peu plus ?
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    bonjour
    merci de ta réponse
    en fait la variable Filtre_C1 est utilisé à plusieurs endroits
    mai il y a une erreur dans mon copié collé
    il fallait lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Filtre_C1 = "(T_Resultats.[Endroit du prélèvement] = 'Cellule #1')"
            Requete = "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] " + _
                   "FROM T_Resultats HAVING " + Filtre_C1 + ";"
    la requête est donc la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Requete = "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] " + _
                   "FROM T_Resultats HAVING (T_Resultats.[Endroit du prélèvement] = 'Cellule #1')"
    je ne sais pas si ta requête répond à mes exigences :
    Je voudrais avoir le max de Matieres_en_suspension dans la table T_rersultats avec Endroit du prélèvement = Cellule #1


    merci encore

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Peux-tu préciser ce que tu veux dire par:
    'Cellule #1'
    A quoi fais-tu référence ?
    Merci d'avance
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    bonjour

    est la valeur que prend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T_Resultats.[Endroit du prélèvement]
    lors de la saisie du formaulaire
    Ce sont des valeurs dans une autre table T_endroit

    merci

  6. #6
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonsoir !

    Ok, je comprends mieux :-)

    Je pense que le code suivant devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Si la valeur de Filtre_C1 est numérique:
    Requete = "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] FROM T_Resultats HAVING " & Filtre_C1 & ";"
    
    'Si cette valeur est une "string":
    Requete = "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] FROM T_Resultats HAVING '" & Filtre_C1 & "';"
    Souhaitant, tout au moins t'avoir donné une piste :-)

    Cordialement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Merci de ton aide
    Mais il y a quelque chose qui m'échappe et je ne sais quoi !!!
    si je lance la requête toute simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Requete = "SELECT Max(T_Resultats.[Matieres_en_suspension]) AS [MaxDeMatières] FROM T_Resultats;"
    puis j'affiche dans ma case de formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            TxtMax.Value = rst.Fields("MaxDeMatières").Value
    avec TxtMax le nom de ma case texte dans mon formulaire
    je ne trouve toujours pas le max !!!!
    y aurait il un problème avec ma ligne de code lors de l'affectation de TxtMax ??

    merci
    bonne soirée

  8. #8
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Bien entendu, il est possible, via une requête de "rapatrier" un "Max" mais c'est un peu plus complexe, il faut passer par un RecordSet...
    Mais alors, ne serait-il pas plus simple de trouver ce "Max" de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MonChampMax = DMax("Matieres_en_suspension", "T_Resultats")  ' Il y a possibilité d'un 3ème critère qui se substitue à la fonction "WHERE"
    Si tu as besoin d'infos, sélectionne "DMax" et presse la touche "F1", tu verras, c'est bien expliqué.

    Bonne soirée

    Bernard.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    bonjour
    J'ai enfin trouvé le problème
    en fait, le champ 'Matieres_en_suspension' était définit dans la base de données comme un 'Texte Court'
    Désolé pour le dérangement mais j'ai appris à manipuler les requêtes !!!

    merci encore de ton aide
    bonne soirée

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

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 10h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 16h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

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