Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Description d'un champ d'une base Access

4 réponses
Avatar
Daniel AUBRY
Bonjour à tous,

lorsque l'on crée une table avec Access on peut renseigner
pour chaque champ une description.

J'arrive, avec VB, à récupérer les noms de champ d'une table
mais pas cette description.

Si quelqu'un a une p'tite idée.........

Ci dessous le code que j'utilise.

Dany

SQL = "Select *"
SQL = SQL & " from [" & NomDeMaTable & "]"

Cmd.CommandText = SQL
Set Rs = Cmd.Execute

ListeChamp.Clear

For Each z In Rs.Fields
ListeChamp.AddItem z.Name
Next

4 réponses

Avatar
Jacques93
Bonjour Daniel AUBRY,
Daniel AUBRY a écrit :
Bonjour à tous,

lorsque l'on crée une table avec Access on peut renseigner
pour chaque champ une description.

J'arrive, avec VB, à récupérer les noms de champ d'une table
mais pas cette description.

Si quelqu'un a une p'tite idée.........

Ci dessous le code que j'utilise.

Dany

SQL = "Select *"
SQL = SQL & " from [" & NomDeMaTable & "]"

Cmd.CommandText = SQL
Set Rs = Cmd.Execute

ListeChamp.Clear

For Each z In Rs.Fields
ListeChamp.AddItem z.Name
Next





Je crois qu'il faut passer une instance d'Access :

Dim ac As Object
Dim tdf As Object, fld As Object

Set ac = CreateObject("Access.Application")
ac.OpenCurrentDatabase "C:MaBase.MDB", True
On Error Resume Next
For Each tdf In ac.CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
For Each fld In tdf.Fields
Debug.Print tdf.Name & "-" _
& fld.Name & " : " _
& fld.Properties("Description")
Next fld
End If
Next tdf


--
Cordialement,

Jacques.
Avatar
Daniel AUBRY
Merci Jacques,
mais c'est justement ce que je ne veux pas faire car le poste client
n'a pas forcément Access.

Merci quand même,

Dany

"Jacques93" a écrit dans le message de news:
%
Bonjour Daniel AUBRY,
Daniel AUBRY a écrit :
Bonjour à tous,

lorsque l'on crée une table avec Access on peut renseigner
pour chaque champ une description.

J'arrive, avec VB, à récupérer les noms de champ d'une table
mais pas cette description.

Si quelqu'un a une p'tite idée.........

Ci dessous le code que j'utilise.

Dany

SQL = "Select *"
SQL = SQL & " from [" & NomDeMaTable & "]"

Cmd.CommandText = SQL
Set Rs = Cmd.Execute

ListeChamp.Clear

For Each z In Rs.Fields
ListeChamp.AddItem z.Name
Next





Je crois qu'il faut passer une instance d'Access :

Dim ac As Object
Dim tdf As Object, fld As Object

Set ac = CreateObject("Access.Application")
ac.OpenCurrentDatabase "C:MaBase.MDB", True
On Error Resume Next
For Each tdf In ac.CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
For Each fld In tdf.Fields
Debug.Print tdf.Name & "-" _
& fld.Name & " : " _
& fld.Properties("Description")
Next fld
End If
Next tdf


--
Cordialement,

Jacques.


Avatar
Jacques93
Bonsoir Daniel AUBRY,
Daniel AUBRY a écrit :
Merci Jacques,
mais c'est justement ce que je ne veux pas faire car le poste client
n'a pas forcément Access.




Malheureusement, quand on accède à la collection 'properties' d'un objet
'field' d'un recorset via ADO, il n'y a pas de propriété 'Description'.

--
Cordialement,

Jacques.
Avatar
parci
>Bonjour à tous,

lorsque l'on crée une table avec Access on peut renseigner
pour chaque champ une description.



Possible avec ADOX (pas nécessaire qu'Access soit installé, mais le MDAC si)
avec une référence à "Microsoft ADO Ext. 2.7 for DDL and Security"
:

Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Dim col As ADOX.Column

Dim sBase As String
Dim sTable As String
Dim sChamp As String

sBase = "C:maBase.mdb"
sTable = "maTable"
sChamp = "monChamp"

cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
sBase
Set tbl = cat.Tables.Item(sTable)
Set col = tbl.Columns.Item(sChamp)
Debug.Print col.Properties.Item("Description")

Set tbl = Nothing
Set col = Nothing

--
Message monitoré par axinews : http://www.axinews.com/