Bonjour,
Cela fait plusieurs jour que je cherche, mais je ne trouve pas, et donc me voila...
Ci-dessous, un bout de code simplifié fonctionnant avec DAO qui me permet de récupérer la propriété qui m’intéresse. Cette propriété me permet par la suite de construire un userform en fonction des type de champ, mais la n'est pas la question.
Et donc recup contiens généralement 106 ou 109 ou 110 ou 111 en fonction du type de champ défini dans votre table. (Zone de texte, ou zone de liste, ou zone de liste déroulante, Case à cocher) je ne me rappelle pas les correspondances mais ca aussi ce n'est pas important pour le moment.
Ce que je souhaite maintenant, c'est faire la meme chose en ADO, voir ADOX
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 'bibliotèque de référence pour dao : Microsoft DAO 3.6 Object Library Sub DAOPropertie() Dim Chemin As String = "D:\Configuration\" Dim bddACCDB As String = "BDD.accdb" Dim table As String = "Table1" Dim champ As String = "Colonne1" Dim recup as String Dim db As DAO.Database Dim rst As DAO.Recordset ' Ouverture de la base de données Set db = DBEngine.OpenDatabase(Chemin & bddACCDB) ' Ouverture du Recordset Set rst = db.OpenRecordset("SELECT " & champ & " FROM " & table & "", dbOpenDynaset, dbReadOnly) 'récuperation de la proprièté du type de champ '(je ne me rappele plus a quoi correspond quoi, 106 109 110 ou 111 pour soit un champ texte, une listbox, un combobox, case à coché) recup = rst.Fields(champ).Properties("DisplayControl").Value) 'fermeture rst.Close db.Close End Sub
Mais j'ai beau cherché je ne trouve pas quelque chose de similaire, ou quel serais la propriété a recherché
Voici le code ado, mais la récup de l'information n'est pas trouver.
Si quelqu’un savait où je trouve la propriété similaire à ce "DisplayControl" du dao ou comment je peux identifier le type de champ défini dans access comme Contrôle de l'affichage avec l'ado, cela me serait plus qu'utile pour la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 'bibliotèque de référence pour adodb : Microsoft ActiveX Data Objects 2.6 Library Sub ADOPropertie() Dim Chemin As String = "D:\Configuration\" Dim bddACCDB As String = "BDD.accdb" Dim table As String = "Table1" Dim champ As String = "Colonne1" Dim recup as String Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset ' Ouverture de la connection cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Chemin & bddACCDB & ";" ' Ouverture du Recordset en défilement en avant, et en lecture seule rst.Open "SELECT " & champ & " FROM " & table & "", cnn, adOpenStatic, adLockReadOnly ' ERROR ERROR ERROR recup = rst.Fields(champ).Properties("DisplayControl") '?????????????????????? Que dois-je mettre ????????????????? 'fermeture rst.Close cnn.Close End Sub
Merci et à bientôt
Partager