Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 15h27   #1
Membre habitué
 
Inscription : août 2005
Messages : 365
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : août 2005
Messages : 365
Points : 105
Points : 105
Par défaut Concaténer les colonnes d'une table

Bonjour

Je souhaite concaténer en vba les champ et leur valeurs d'une table.

Code :
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
 
Public Function concatenerCol(ID_Table As Long) As String
 
 
Dim i As Integer
Dim SQL As String
Dim DB As DAO.Database
Set DB = CurrentDb
Dim rs As DAO.Recordset
Dim rsProp As DAO.Recordset
 
SQL = "SELECT * FROM matable WHERE ID_Table = " & ID_Table
 
Set rs = DB.OpenRecordset(SQL, dbOpenDynaset)
 
Set rsProp = CurrentDb.OpenRecordset("matable")
' je ne veux pas les 2 premiers champs qui sont mes index 
For i = 2 To rs.Fields.Count
With rsProp
' Ici une condition pour ne pas prendre les champs qui finissent par _J1 ou qui contiennent NON
        If Not rs.Fields(i).Name Like "*_J1" or rs.Fields(i).Value <> "NON" Then
        concatenerCol = concatenerCol & rs.Fields(i).Name & ": " & rs.Fields(i).Value & Chr(13)
        End If
 
End With
 
 
Next
rs.Close
 
End Function
Mais j'ai une erreur "Item not found in this collection"
Je ne vois pas mon erreur.
Merci par avance pour vos conseils.
docjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 16h18   #2
Membre habitué
 
Inscription : août 2005
Messages : 365
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : août 2005
Messages : 365
Points : 105
Points : 105
J'ai trouvé: j'avais une colonne en trop (puisque on part de zéro)

Code :
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
 
Public Function concatenerCol(ID_Table As Long) As String
 
 
Dim i As Integer
Dim SQL As String
Dim DB As DAO.Database
Set DB = CurrentDb
Dim rs As DAO.Recordset
Dim rsProp As DAO.Recordset
 
SQL = "SELECT * FROM matable WHERE ID_Table = " & ID_Table
 
Set rs = DB.OpenRecordset(SQL, dbOpenDynaset)
 
Set rsProp = CurrentDb.OpenRecordset("matable")
' je ne veux pas les 2 premiers champs qui sont mes index, c'est ici qu'il faut enlever 1 au nombre de colonnes
For i = 2 To rs.Fields.Count -1
With rsProp
' Ici une condition pour ne pas prendre les champs qui finissent par _J1 ou qui contiennent NON
        If Not rs.Fields(i).Name Like "*_J1" or rs.Fields(i).Value <> "NON" Then
        concatenerCol = concatenerCol & rs.Fields(i).Name & ": " & rs.Fields(i).Value & Chr(13)
        End If
 
End With
 
 
Next
rs.Close
 
End Function
docjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h14.


 
 
 
 
Partenaires

Hébergement Web