J'ai une table TbHybPays avec comme champ NumExp et Pays.
Je souhaite faire une requête qui regroupe tous les pays et qui
concatène les NumExp.
Ex :
FRANCE 1-2-3-4
ITALIE 5-6-7-8
J'ai donc créé une requête avec 2 champs :
1- Pays
2- Résultat: ConcatForQuery("Pays";[Pays];"NumExp";"TbHybPays";"/")
Enfin, j'ai créé un module faisant référence à la fonction dont voici
le code :
Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String = "/") As String
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
Lorsque je lance la requête, j'ai une erreur de compilation.
Est ce que quelqu'un pourrait me dire où j'ai l'erreur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gafish
Bonjour,
Et l'erreur est signalé sur une ligne précise ? Si non lance une compilation à la main et tu verras en cas d'erreur la ligne qui ne lui convient pas. Dis nous laquelle.
Arnaud
Zea wrote:
J'ai une table TbHybPays avec comme champ NumExp et Pays. Je souhaite faire une requête qui regroupe tous les pays et qui concatène les NumExp. Ex : FRANCE 1-2-3-4 ITALIE 5-6-7-8
J'ai donc créé une requête avec 2 champs : 1- Pays 2- Résultat: ConcatForQuery("Pays";[Pays];"NumExp";"TbHybPays";"/")
Enfin, j'ai créé un module faisant référence à la fonction dont voici le code :
Function ConcatForQuery(strRegroup As String, fldRegroup As String, _ strConcat As String, strTable As String, _ Optional strSep As String = "/") As String 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
Lorsque je lance la requête, j'ai une erreur de compilation. Est ce que quelqu'un pourrait me dire où j'ai l'erreur.
Merci d'avance.
Bonjour,
Et l'erreur est signalé sur une ligne précise ?
Si non lance une compilation à la main et tu verras en cas d'erreur la ligne
qui ne lui convient pas. Dis nous laquelle.
Arnaud
Zea wrote:
J'ai une table TbHybPays avec comme champ NumExp et Pays.
Je souhaite faire une requête qui regroupe tous les pays et qui
concatène les NumExp.
Ex :
FRANCE 1-2-3-4
ITALIE 5-6-7-8
J'ai donc créé une requête avec 2 champs :
1- Pays
2- Résultat: ConcatForQuery("Pays";[Pays];"NumExp";"TbHybPays";"/")
Enfin, j'ai créé un module faisant référence à la fonction dont voici
le code :
Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String = "/") As String
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
Lorsque je lance la requête, j'ai une erreur de compilation.
Est ce que quelqu'un pourrait me dire où j'ai l'erreur.
Et l'erreur est signalé sur une ligne précise ? Si non lance une compilation à la main et tu verras en cas d'erreur la ligne qui ne lui convient pas. Dis nous laquelle.
Arnaud
Zea wrote:
J'ai une table TbHybPays avec comme champ NumExp et Pays. Je souhaite faire une requête qui regroupe tous les pays et qui concatène les NumExp. Ex : FRANCE 1-2-3-4 ITALIE 5-6-7-8
J'ai donc créé une requête avec 2 champs : 1- Pays 2- Résultat: ConcatForQuery("Pays";[Pays];"NumExp";"TbHybPays";"/")
Enfin, j'ai créé un module faisant référence à la fonction dont voici le code :
Function ConcatForQuery(strRegroup As String, fldRegroup As String, _ strConcat As String, strTable As String, _ Optional strSep As String = "/") As String 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
Lorsque je lance la requête, j'ai une erreur de compilation. Est ce que quelqu'un pourrait me dire où j'ai l'erreur.
Merci d'avance.
laurent_deslandes
Le probléme de compilation se fait sur la ligne : Dim db As Database L'erreur est : Type défini par utilisateur non défini. Que dois-je définir?
Merci.
Le probléme de compilation se fait sur la ligne :
Dim db As Database
L'erreur est : Type défini par utilisateur non défini.
Que dois-je définir?
Dans ton module, tu vas dans outils...references et tu coches la case Microsoft DAO x.x Object Library
(avec x.x des chiffres qui varient selon la version que tu as)
Arnaud
Zea wrote:
Le probléme de compilation se fait sur la ligne : Dim db As Database L'erreur est : Type défini par utilisateur non défini. Que dois-je définir?
Merci.
laurent_deslandes
Bonjour et merci pour ton aide. Effectivement, cela a permis de résoudre l'erreur. Malheureusement, j'ai maintenant une erreur (Erreur "Incompatibilité de type") sur la ligne : "Set rst = db.OpenRecordset(strRst, dbOpenDynaset)" En cherchant sur le forum, j'ai vu qu'il fallait changer le type de la variable "rst" de "Recordset" en "object". Et là, effectivement, cela marche.
Pourquoi est-ce que "Recordset" n'est pas reconnu sur ma machine?
D'avance merci.
"Gafish" wrote in message news:...
Dans ton module, tu vas dans outils...references et tu coches la case Microsoft DAO x.x Object Library
(avec x.x des chiffres qui varient selon la version que tu as)
Arnaud
Zea wrote:
Le probléme de compilation se fait sur la ligne : Dim db As Database L'erreur est : Type défini par utilisateur non défini. Que dois-je définir?
Merci.
Bonjour et merci pour ton aide.
Effectivement, cela a permis de résoudre l'erreur.
Malheureusement, j'ai maintenant une erreur (Erreur "Incompatibilité
de type") sur la ligne : "Set rst = db.OpenRecordset(strRst,
dbOpenDynaset)"
En cherchant sur le forum, j'ai vu qu'il fallait changer le type de la
variable "rst" de "Recordset" en "object". Et là, effectivement, cela
marche.
Pourquoi est-ce que "Recordset" n'est pas reconnu sur ma machine?
D'avance merci.
"Gafish" <---gafish@free.fr----nospam> wrote in message news:<OKJ7oJATFHA.3620@TK2MSFTNGP09.phx.gbl>...
Dans ton module, tu vas dans outils...references et tu coches la case
Microsoft DAO x.x Object Library
(avec x.x des chiffres qui varient selon la version que tu as)
Arnaud
Zea wrote:
Le probléme de compilation se fait sur la ligne :
Dim db As Database
L'erreur est : Type défini par utilisateur non défini.
Que dois-je définir?
Bonjour et merci pour ton aide. Effectivement, cela a permis de résoudre l'erreur. Malheureusement, j'ai maintenant une erreur (Erreur "Incompatibilité de type") sur la ligne : "Set rst = db.OpenRecordset(strRst, dbOpenDynaset)" En cherchant sur le forum, j'ai vu qu'il fallait changer le type de la variable "rst" de "Recordset" en "object". Et là, effectivement, cela marche.
Pourquoi est-ce que "Recordset" n'est pas reconnu sur ma machine?
D'avance merci.
"Gafish" wrote in message news:...
Dans ton module, tu vas dans outils...references et tu coches la case Microsoft DAO x.x Object Library
(avec x.x des chiffres qui varient selon la version que tu as)
Arnaud
Zea wrote:
Le probléme de compilation se fait sur la ligne : Dim db As Database L'erreur est : Type défini par utilisateur non défini. Que dois-je définir?