J'acc=E8de =E0 une source de donn=E9es odbc via ADODB et je=20
souhaiterais r=E9cup=E9rer les nom des champs d'une table.
Je me connecte =E0 ma source de donn=E9es et r=E9cup=E8re un=20
enregistrement de la mani=E8re suivante :
Dim adoCnx As ADODB.Connection
Dim adoRs As ADODB.Recordset
Set adoCnx =3D New ADODB.Connection
Set adoRs =3D New ADODB.Recordset
adoCnx.ConnectionString =3D "DSN=3DBIJOUX_SRC"
adoCnx.Open
adoRs.ActiveConnection =3D adoCnx
adoRs.Source =3D "SELECT GL_INTITULE FROM F_GLOSSAIRE"
adoRs.Open
Do Until adoRs.EOF
MsgBox adoRs("GL_INTITULE")
adoRs.MoveNext
Loop
adoRs.Close
adoCnx.Close
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
Zoury
Salut Nicolas! :O)
Tu as ADOX qui te permet cela... http://groups.google.com/groups?threadm=uE7K7bJwCHA.2668%40TK2MSFTNGP09
Tu peux aussi probablement faire une requête sur les tables systèmes... (je ne connais pas la syntaxe, tu n'as pas spécifier sur quel BD tu travailles, le message précédent montre un exemple pour SQL Server..)
Tu peux également, faire une requête comme tu l'as fait et boucler la collection de Fields du recordset reçu... mais personnelement cette technique me donne des remors de conscience.. ;O) '*** ' Ajouter la référence à Microsoft ActiveX Data Objects 2.7 Library ' Utilise la base de données NorthWind d'SQL Server.. ' Module1 Option Explicit
Private Sub Main()
Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim fld As ADODB.Field
Set cn = New ADODB.Connection Call cn.Open("Provider=SQLOLEDB.1;Persist Security Infoúlse;User ID=sa;Initial Catalog=Northwind;Data Source=GCODEV")
Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient
' Cette nous renvoit la structure de la table sans aucune donnée... Call rs.Open("select * from Customers where 1 = 0", _ cn, adOpenForwardOnly, adLockReadOnly)
' Imprime les noms de champs.. For Each fld In rs.Fields Debug.Print fld.Name Next fld
' Ferme nos objets rs.Close cn.Close
End Sub '***
Salut Nicolas! :O)
Tu as ADOX qui te permet cela...
http://groups.google.com/groups?threadm=uE7K7bJwCHA.2668%40TK2MSFTNGP09
Tu peux aussi probablement faire une requête sur les tables systèmes... (je
ne connais pas la syntaxe, tu n'as pas spécifier sur quel BD tu travailles,
le message précédent montre un exemple pour SQL Server..)
Tu peux également, faire une requête comme tu l'as fait et boucler la
collection de Fields du recordset reçu... mais personnelement cette
technique me donne des remors de conscience.. ;O)
'***
' Ajouter la référence à Microsoft ActiveX Data Objects 2.7 Library
' Utilise la base de données NorthWind d'SQL Server..
' Module1
Option Explicit
Private Sub Main()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Set cn = New ADODB.Connection
Call cn.Open("Provider=SQLOLEDB.1;Persist Security Infoúlse;User
ID=sa;Initial Catalog=Northwind;Data Source=GCODEV")
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
' Cette nous renvoit la structure de la table sans aucune donnée...
Call rs.Open("select * from Customers where 1 = 0", _
cn, adOpenForwardOnly, adLockReadOnly)
' Imprime les noms de champs..
For Each fld In rs.Fields
Debug.Print fld.Name
Next fld
Tu as ADOX qui te permet cela... http://groups.google.com/groups?threadm=uE7K7bJwCHA.2668%40TK2MSFTNGP09
Tu peux aussi probablement faire une requête sur les tables systèmes... (je ne connais pas la syntaxe, tu n'as pas spécifier sur quel BD tu travailles, le message précédent montre un exemple pour SQL Server..)
Tu peux également, faire une requête comme tu l'as fait et boucler la collection de Fields du recordset reçu... mais personnelement cette technique me donne des remors de conscience.. ;O) '*** ' Ajouter la référence à Microsoft ActiveX Data Objects 2.7 Library ' Utilise la base de données NorthWind d'SQL Server.. ' Module1 Option Explicit
Private Sub Main()
Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim fld As ADODB.Field
Set cn = New ADODB.Connection Call cn.Open("Provider=SQLOLEDB.1;Persist Security Infoúlse;User ID=sa;Initial Catalog=Northwind;Data Source=GCODEV")
Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient
' Cette nous renvoit la structure de la table sans aucune donnée... Call rs.Open("select * from Customers where 1 = 0", _ cn, adOpenForwardOnly, adLockReadOnly)
' Imprime les noms de champs.. For Each fld In rs.Fields Debug.Print fld.Name Next fld