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 :

champ vide en erreur a jointure de tables


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut champ vide en erreur a jointure de tables
    bonjour

    Dans une requete à 2 colonnes bande et résultat j' essaye de joindre 2 tables et probleme , les champs vides affichent erreur dans le champ résultat. Nz ne donne rien
    merci pour votre aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [création bandes].[no bandes], [concatene par porté].Résultat
    FROM [création bandes] LEFT JOIN [concatene par porté] ON [création bandes].[no bandes] = [concatene par porté].bande
    WHERE ((([création bandes].[no bandes]) Is Not Null));

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    si je vois où peu venir l'origine de l'erreur;
    mais j'ai du mal à comprendre l'objectif de ta requete:

    voici une proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [création bandes].[no bandes], [concatene par porté].Résultat
    FROM [création bandes] INNER JOIN [concatene par porté] ON [création bandes].[no bandes] = [concatene par porté].bande
    WHERE ((([création bandes].[no bandes]) IS NOT NULL));
    mais tout dépend de ce que tu recherche comme résultat...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    bonsoir
    merci pour ton aide
    mon souhait dans cette requete
    à partir d' une table contenant une liste de toutes les bandes d 'animaux et une requete listant les bandes contenant dans un champ concaténér des animaux d' un type définis , c' est à dire pas toutes les bandes

    je joint la table et la requete avec bande en jointure.
    quand une bande ne contient pas d' animaux définis le champ résultat affiche erreur
    comment obtenir un champs vide?

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    après test: pas d'affichage d'#Erreur avec ton SQL.
    l'erreur se produit donc dans [Résultat]
    quel est son expression?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    Effectivement l' erreur est bien dans le champ résultat lorsqu' il ne contient pas d 'animaux
    ce champ provient de la requete concatene 1 porté .Cette requete concatene les numéros d' animaux d' une meme bande pour un type défini par ce module dans le champ résultat.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Public Function RecupParticipant(Projet As Long) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les participant du projet
    SQL = "SELECT boucle FROM regroupementt WHERE bande=" & Projet
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrement
    While Not res.EOF
    RecupParticipant = RecupParticipant & res.Fields(0).Value & " "
    res.MoveNext
    Wend
    'Enleve le dernier espace
    RecupParticipant = Left(RecupParticipant, Len(RecupParticipant) - 1)
    'libere la mémoire
    Set res = Nothing
    End Function
     
     
    Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
        strConcat As String, strTable As String, _
        Optional strSep As String = "/") As String
     
    '** Regroupement de donnée sur le champ fldRegroup
    '** et concaténation sur le champ strConcat
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strResult As String
    Dim strRst As String
     
    Set db = CurrentDb()
    strRst = "Select * From [" & strTable & "] " _
        & "Where [" & strRegroup & "] = " & fldRegroup & ";"
     
    Set rst = db.OpenRecordset(strRst, dbOpenDynaset)
    With rst
        If Not .BOF Then
            .MoveFirst
            Do Until .EOF
                If strResult = "" Then
                    strResult = .Fields(strConcat)
                Else
                    strResult = strResult & strSep & .Fields(strConcat)
                End If
            .MoveNext
            Loop
        End If
    End With
    rst.Close: Set rst = Nothing
    db.Close: Set db = Nothing
    ConcatForQuery = strResult
     
    End Function
    merci

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    quelle est l'expression de [Résultat] dans 'concatene 1 porté'?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour;

    Et quelle fonction est utilisée dans cette requête : RecupParticipant ou ConcatForQuery

    Cordialement.

    Ps : Déjà levé Vodiem?
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    bonjour
    la fonction concat ForQuery

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    bonjour

    la fonction utilisé est concat for query
    l' expression de résultat est la suivante dans la requete concatene 1 porté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Résultat: ConcatForQuery("bande";[bande];"boucle";"regroupementt";" - ")

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,
    Citation Envoyé par pierre22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Résultat: ConcatForQuery("bande";[bande];"boucle";"regroupementt";" - ")
    me semble plus que "suspect.."
    Dans une base-->Tatable--TaRequête--Le Module Tout ceci réduit à la plus simple expression et--Envoi livré à notre contemplation.(Et autre)

    Cordialement
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    bonjour

    super une solution qui marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    no: VraiFaux(EstNull([bande]);"";[résultat])
    merci

  12. #12
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    bravo pierre22,
    VraiFaux était la bonne réponse !
    (fallait-il savoir encore où le mettre...)

    francishop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ps : Déjà levé Vodiem?
    ben oui: un bon informaticien se doit de ne pas dormir mais se mettre en veille...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/01/2007, 10h17
  2. Erreur champs vides
    Par RodEpsi dans le forum Bases de données
    Réponses: 12
    Dernier message: 01/12/2006, 20h38
  3. Test evenement sur champ vide dans une table
    Par eddyG dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h02
  4. Affectation sur un champ vide d'une table Access
    Par kurkaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2005, 09h14
  5. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 08h41

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