Partage
  • Partager sur Facebook
  • Partager sur Twitter

La fonction "ConcatForQuery" non reconnue dans l'expression

Fonction VBA

    7 septembre 2010 à 10:13:10

    Bonjour

    J'espère pouvoir obtenir nouvelle réponse pour un problème apparemment courant.
    Je viens de créer un module sous Access définissant la fonction ConcatFOrQuery.

    Voici son contenu :
    Option Compare Database
    
    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 Database
        Dim rst As 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
    


    Je l'ai enregistré. Ce code provient de ce lien (fonction permettant de concaténer plusieurs éléments du même champ) :
    ConcatForQuery

    Je rentre donc ensuite la requête suivante :
    SELECT Num_Dossier, ConcatForQuery("Num_Dossier",[Num_Dossier],"Type","rq_test"," - ") AS Résultat
    FROM rq_test
    GROUP BY Num_Dossier;
    


    Avec comme table et son contenu :
    Num_Dossier Articles
    6 < 6 H Accuflo 200ml En 2heures
    6 6/72 H Accuflo 240ml En 48heures
    9 Raccord Coud? Crant? Orientable 22m-22f
    13 > 72 H Accuflo Coque Souple 240ml En 5 Jours Débit 2ml/hr

    Et lorsque je souhaite exécuter la requête ci-dessus, ce message d'erreur apparaît :
    Fonction "ConcatForQuery" non définie dans l'expression.

    En faisant des recherches, j'ai pas mal vu que ça pouvait être une histoire de références dans VBA.
    Qu'il fallait décocher les références manquantes, puis recocher, etc...
    J'ai tout essayé, ou peut-être pas de la bonne manière avec cette histoire de référence.
    J'imagine que vous avez deviné le résultat...

    Euh... o_O

    Ben ça n'a pas marché !
    Merci de m'indiquer la voie si possible :D
    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2010 à 11:25:49

      UP !

      La situation à légèrement évolué... Je l'ai testé sur une nouvelle base de donnée, en reprenant typiquement l'exemple de l'auteur de la fonction.

      Elle a fonctionné !!
      Je suis passé via une requête au lieu d'une table : Pareil !!

      Alors je me tords depuis une journée entière à comprendre POURQUOI ça ne veut pas fonctionner sur mon autre base... Des idées, suggestions ? N'importe quoi !

      Parce que là, je commence sérieusement à en avoir marre... Y a rien d'expliquer sur cette fichue erreur, même la FAQ de Microsoft ne m'aide pas -_-
      Raz-le-bol.
      • Partager sur Facebook
      • Partager sur Twitter

      La fonction "ConcatForQuery" non reconnue dans l'expression

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown