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 :

probleme de concaténation


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut probleme de concaténation
    bonjour

    A partir d'une requete nomé concatene vide à deux champs, 23 et boucle je souhaite concaténer sur une meme ligne tous les enregistrement du champ boucle qui ont comme point commun le champ 23 (le champ 23 est un champ texte)
    voici le sql de ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    GROUP BY concatenevides.[23]
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");
    pour cela j'utilise ce module

    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
    53
    54
    Option Compare Database
     
    Public Function RecupParticipant(Projet As Long) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les participant du projet
    SQL = "SELECT * FROM Tbl_Projet WHERE Projet=" & 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 ConcatvideForQuery(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
    ConcatvideForQuery = strResult
     
    End Function
    et bien sur cela ne marche pas.
    Access me renvoi "erreur d'exécution 3061, trop peu de parametres.1 attendu"

    Merci de votre aide

  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 : 53
    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
    Par défaut
    salut pierre22,

    je sais que cela ne répond pas à ta question mais tu as une source de notre ami philben qui fonctionne lui très bien ici.


  3. #3
    Membre averti
    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
    Par défaut
    bonjour vodiem
    je viens d' essayer la fonction à philben

    dans ma requete je place l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boucle: ConcatColonne([23];"23";"boucle";"concatenevides";"";Faux;Null;"-")
    à l'ouverture de la requete j'ai "erreur" dans le champ boucle

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2009
    Messages : 98
    Par défaut
    Citation Envoyé par pierre22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    GROUP BY concatenevides.[23]
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");
    pour cela j'utilise ce module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
     
    [...]
     
    Function ConcatvideForQuery(strRegroup As String, fldRegroup As String, _
        strConcat As String, strTable As String, _
        Optional strSep As String = "/") As String
    [..] 
    strRst = "Select * From [" & strTable & "] " _
        & "Where [" & strRegroup & "] = """ & fldRegroup & """;"
    [...] 
    End Function
    Si j'ai bien tout compris le resultat de strRst sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [concatenevides] WHERE [23]="[23]"
    Cela signifie-t-il que tu recherche les valeurs [23] dans le champ [23]?
    J'ai pas tres bien compris ce que fait cette requete

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2009
    Messages : 98
    Par défaut
    Suis je con ... je le pense
    Citation Envoyé par pierre22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    GROUP BY concatenevides.[23]
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");
    Ta requete initiale a un Group by qui n'est pas correct. Il doit comprendre tous les membres de la clause select qui n'ont pas une operation de regroupement du type sum,count, etc
    Ta fonction n'est pas une fonction de regroupement donc elle doit apparaitre dans la clause groupeby

  6. #6
    Membre averti
    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
    Par défaut
    bonjour Belu33fr

    merci de t'interesser à mon probleme

    tu me dis
    Ta requete initiale a un Group by qui n'est pas correct. Il doit comprendre tous les membres de la clause select qui n'ont pas une operation de regroupement du type sum,count, etc
    Ta fonction n'est pas une fonction de regroupement donc elle doit apparaitre dans la clause groupeby
    mais voila si tu pouvais etre plus explicite parceque la vu mon niveau je suis dépassé

    merci

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2009
    Messages : 98
    Par défaut
    Tu ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    GROUP BY concatenevides.[23]
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");
    il faudrait que tu ecrives
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    GROUP BY concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ")
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");
    Mais le probleme est que cela ne sert a rien car il n'y a pas de fonction de regroupement du type SUM(), AVERAGE(), COUNT() dans la clause select.
    La syntaxe qui devrait donc macher est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT concatenevides.[23], ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ") AS Résultat
    FROM concatenevides
    ORDER BY ConcatvideForQuery("23",[23],"boucle","concatenevides"," - ");

Discussions similaires

  1. [AC-2007] Probleme pour Concaténer plusieurs enregistrements dans une seule colonne
    Par severik dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 08/11/2017, 15h15
  2. probleme de concaténation de fichiers
    Par capitaine.banane dans le forum ANT
    Réponses: 4
    Dernier message: 11/12/2008, 10h55
  3. Probleme de Concaténation
    Par Leibmaster dans le forum ASP
    Réponses: 4
    Dernier message: 23/05/2007, 17h03
  4. [C++] probleme de concaténation
    Par leroidje dans le forum C++
    Réponses: 2
    Dernier message: 08/06/2006, 10h26
  5. [C++] Probleme de concaténation
    Par leroidje dans le forum C++
    Réponses: 13
    Dernier message: 31/05/2006, 16h47

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