cs_nicolasheurtevin
Messages postés88Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention29 août 2006
-
10 oct. 2003 à 12:06
cs_nicolasheurtevin
Messages postés88Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention29 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
cs_wape
Messages postés262Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention19 décembre 201012 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