OVH Cloud OVH Cloud

ADODB + liste des tables et champs

6 réponses
Avatar
Nicolas
Bonjour,

J'ai cr=E9e un DSN vers des fichiers de base de donn=E9es et=20
je souhaiterais avoir acc=E8s =E0 la liste des tables et des=20
champs de cette base avec la m=E9thode ADODB

Je sais le faire avec les propri=E9t=E9s TableDef et Fields du=20
type Database mais comment faire avec ADODB ?

Merci d'avance

Nicolas

6 réponses

Avatar
Zoury
Salut Nicolas! :O)

Tu peux y parvenir facilement avec ADOX.
http://groups.google.com/groups?threadm=uvNKVgWFDHA.2464%40TK2MSFTNGP09.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Nicolas" wrote in message
news:0dc901c38e5f$f5130e90$
Bonjour,

J'ai crée un DSN vers des fichiers de base de données et
je souhaiterais avoir accès à la liste des tables et des
champs de cette base avec la méthode ADODB

Je sais le faire avec les propriétés TableDef et Fields du
type Database mais comment faire avec ADODB ?

Merci d'avance

Nicolas
Avatar
Nicolas
Je suis allé voir l'article suivant :

http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/ado270/htm/mdaexamples_vb02_9.asp

qui traite de la commande OpenSchema(adSchemaTables)

Malheureusement cette commande plante dans mon code et
m'affiche :

Run-time error : '-2147217887 (80040e21)':
Une opération OLE-DB en plusieurs étapes a généré des
erreurs. Vérifiez que chaque valeur d'état OLE-DB
disponible. Aucun travail n'a été effectué.


Moi pas savoir quoi faire ...

Nicolas
Avatar
Nicolas
J'ai trouvé !!!
Il suffisait de mettre "TABLE_NAME" comme restiction !!!
Merci à moi ;-)

Dim Cnx As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim strCnx As String
Set Cnx = New ADODB.Connection
strCnx = "DSN=GestcomG_Bijou;"
Cnx.Open strCnx
Set Rs = Cnx.OpenSchema(adSchemaTables, "TABLE_NAME")
Do Until Rs.EOF
Me.List1.AddItem Rs.Fields(2).Value
Rs.MoveNext
Loop
Avatar
Nicolas
Et ça fonctionne comment avec un DSN ton ADOX ???

Nico
Avatar
Zoury
yep. Il faut utiliser un object ADODB.Connection pour la connection.

Voici un petit exemple
<non testé>
'***
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Call cn.Open("dsn=mon_dsn;")
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Nicolas" wrote in message
news:2647001c38e6f$68161ea0$
Et ça fonctionne comment avec un DSN ton ADOX ???

Nico
Avatar
Zoury
nb : je ne sais pas si c'est préciser quelque part, mais tu dois ajouté la
référence suivante : Microsoft ADO Ext. 2.7 for DDL and Security.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Nicolas" wrote in message
news:2647001c38e6f$68161ea0$
Et ça fonctionne comment avec un DSN ton ADOX ???

Nico