OpenSchema

cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006 - 10 oct. 2003 à 12:06
cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006 - 10 oct. 2003 à 14:05
Bonjour j'utilise l'instruction OpenSchema pour lister les tables et champs d'une source de données ODBC (DSN)

Dans ma List1 les tables
Dans ma List2 les champs de la table séléctionnée dans la List1

Pour lister les tables cela fonctionne très bien, malheureusement il n'en est pas de même pour les champs.
Je suis obligé de les lister tous et de tester pour chaque champ s'il appartient à la table cliquée dans la List1, ce qui prend bcp trop de temps.
Comment faire donc pour éviter ce test fastidieux ?

Ci dessous mon code :

Public adoCnx1 As ADODB.Connection
Public adoRs1 As ADODB.Recordset

Private Sub Form_Load()
Set adoCnx1 = New ADODB.Connection
adoCnx1.ConnectionString = "DSN=GestcomG_Bijou"
adoCnx1.CursorLocation = adUseClient
adoCnx1.Mode = adReadOnly
adoCnx1.Open
Set adoRs1 = New ADODB.Recordset
adoRs1.ActiveConnection = adoCnx1
Set adoRs1 = adoCnx1.OpenSchema(adSchemaTables, "TABLE_NAME")
Do Until adoRs1.EOF
Me.List1.AddItem adoRs1.Fields(2).Value
adoRs1.MoveNext
Loop
End Sub

Private Sub List1_Click()
Set adoRs1 = adoCnx1.OpenSchema(adSchemaColumns, "COLUMN_NAME")
Do Until adoRs1.EOF
If adoRs1.Fields("TABLE_NAME") = Me.List1 Then
Me.List2.AddItem adoRs1.Fields("COLUMN_NAME")
End If
adoRs1.MoveNext
Loop
End Sub

Merci

Nicolas

2 réponses

cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
10 oct. 2003 à 13:19
Essaye éventuellement ceci :

Private Sub List1_Click()
Set adoRs1 = adoCnx1.OpenSchema(adSchemaColumns, Array(Empty, Empty, Me.List1.Text))
Do Until adoRs1.EOF
Me.List2.AddItem adoRs1.Fields("COLUMN_NAME")
adoRs1.MoveNext
Loop
End Sub

Slts

wape
0
cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006
10 oct. 2003 à 14:05
Marche pas !
Mais merci quand même
Nicolas
0
Rejoignez-nous