Je cherche =E0 r=E9cup=E9rer (en VBA) la description d'un objet=20
Access (table, requ=EAte, formulaire...) telle qu'elle a =E9t=E9=20
saisie dans la fen=EAtre Base de donn=E9es (propri=E9t=E9s de=20
l'objet).
Je ne la vois appara=EEtre nulle part, pas m=EAme dans=20
MSysObjects o=F9 l=E0, par contre, on peut r=E9cup=E9rer la date=20
de cr=E9ation et de derni=E8re modif de l'objet.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Loïc, Je ne sais pas si ca répond exactement à ton problème mais ca doit pas en être trop loin: Essaies ca : bout de code ecrit avec DAO 3.x Sub PropertyTable() Dim bd As Database Dim t As TableDef Set bd = CurrentDb ' 6 est un index qui représente la 6eme table ' ne pas oublier les tables Msys qui entrent dans la collection Set t = bd.TableDefs(6) Dim p As Property With t Debug.Print t.Name Debug.Print .Attributes Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value Next p End With End Sub
Sub PropertyQuery() On Error Resume Next 'car p.value plante sur certaines propriétés Dim bd As Database Dim rq As QueryDef Set bd = CurrentDb Set rq = bd.QueryDefs(0) Dim p As Property With rq Debug.Print .Name Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value, p.Inherited Next p End With End Sub
Sub PropertyForm() Dim objet As AccessObject For Each f In Application.CurrentProject.AllForms 'voir dans l'aide l'acces à la ' collection : AccessObjectProperties Debug.Print f.Name Next f End Sub La collection AllForms contient tous les forms de la base qu'ils soient ouverts ou non contrairement à la collection Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+ Eric
-----Message d'origine----- Je cherche à récupérer (en VBA) la description d'un objet Access (table, requête, formulaire...) telle qu'elle a été
saisie dans la fenêtre Base de données (propriétés de l'objet).
Je ne la vois apparaître nulle part, pas même dans MSysObjects où là, par contre, on peut récupérer la date de création et de dernière modif de l'objet.
Merci d'avance ! .
Bonjour Loïc,
Je ne sais pas si ca répond exactement à ton problème mais
ca doit pas en être trop loin:
Essaies ca : bout de code ecrit avec DAO 3.x
Sub PropertyTable()
Dim bd As Database
Dim t As TableDef
Set bd = CurrentDb
' 6 est un index qui représente la 6eme table
' ne pas oublier les tables Msys qui entrent dans la
collection
Set t = bd.TableDefs(6)
Dim p As Property
With t
Debug.Print t.Name
Debug.Print .Attributes
Debug.Print .DateCreated
Debug.Print .LastUpdated
For Each p In .Properties
Debug.Print vbTab & p.Name, p.Type, p.Value
Next p
End With
End Sub
Sub PropertyQuery()
On Error Resume Next 'car p.value plante sur certaines
propriétés
Dim bd As Database
Dim rq As QueryDef
Set bd = CurrentDb
Set rq = bd.QueryDefs(0)
Dim p As Property
With rq
Debug.Print .Name
Debug.Print .DateCreated
Debug.Print .LastUpdated
For Each p In .Properties
Debug.Print vbTab & p.Name, p.Type, p.Value,
p.Inherited
Next p
End With
End Sub
Sub PropertyForm()
Dim objet As AccessObject
For Each f In Application.CurrentProject.AllForms
'voir dans l'aide l'acces à la
' collection : AccessObjectProperties
Debug.Print f.Name
Next f
End Sub
La collection AllForms contient tous les forms de la base
qu'ils soient ouverts ou non contrairement à la collection
Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+
Eric
-----Message d'origine-----
Je cherche à récupérer (en VBA) la description d'un objet
Access (table, requête, formulaire...) telle qu'elle a
été
saisie dans la fenêtre Base de données (propriétés de
l'objet).
Je ne la vois apparaître nulle part, pas même dans
MSysObjects où là, par contre, on peut récupérer la date
de création et de dernière modif de l'objet.
Bonjour Loïc, Je ne sais pas si ca répond exactement à ton problème mais ca doit pas en être trop loin: Essaies ca : bout de code ecrit avec DAO 3.x Sub PropertyTable() Dim bd As Database Dim t As TableDef Set bd = CurrentDb ' 6 est un index qui représente la 6eme table ' ne pas oublier les tables Msys qui entrent dans la collection Set t = bd.TableDefs(6) Dim p As Property With t Debug.Print t.Name Debug.Print .Attributes Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value Next p End With End Sub
Sub PropertyQuery() On Error Resume Next 'car p.value plante sur certaines propriétés Dim bd As Database Dim rq As QueryDef Set bd = CurrentDb Set rq = bd.QueryDefs(0) Dim p As Property With rq Debug.Print .Name Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value, p.Inherited Next p End With End Sub
Sub PropertyForm() Dim objet As AccessObject For Each f In Application.CurrentProject.AllForms 'voir dans l'aide l'acces à la ' collection : AccessObjectProperties Debug.Print f.Name Next f End Sub La collection AllForms contient tous les forms de la base qu'ils soient ouverts ou non contrairement à la collection Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+ Eric
-----Message d'origine----- Je cherche à récupérer (en VBA) la description d'un objet Access (table, requête, formulaire...) telle qu'elle a été
saisie dans la fenêtre Base de données (propriétés de l'objet).
Je ne la vois apparaître nulle part, pas même dans MSysObjects où là, par contre, on peut récupérer la date de création et de dernière modif de l'objet.
Merci d'avance ! .
Loïc
Salut Eric,
J'ai trouvé la solution (merci quand même de t'être penché sur ce petit problème !). En fait, j'étais passé par la table MSysObjects pour tenter de récupérer la description (d'une table par exemple). Au passage, j'ai repéré les colonnes DateCreation et LastUpdated. Mais ces 2 colonnes correspondent à 2 propriétés d'un objet Document et portent le même nom. Alors, pourquoi pas Description ? Et bien il suffit de "forcer le passage", comme souvent sous Access : même si la propriété Description n'apparaît pas dans la liste des propriétés d'un objet Document, et même si elle n'est pas documentée (sauf un chouia dans MSDN Office Developer), elle est pourtant bien là :
Voici le code (Access2000)
Dim o As AccessObject
For Each o In db.CurrentData.AllTables If Left(o.Name, 4) <> "MSys" Then 'table système cmd.Parameters("datecreation") = db.CurrentDb.Containers(8).Documents(o.Name).DateCreated cmd.Parameters("datemodif") = db.CurrentDb.Containers(8).Documents(o.Name).LastUpdated cmd.Parameters("nomobjet") = o.Name cmd.Parameters("description") = db.CurrentDb.Containers(8).Documents(o.Name).Properties ("Description").Value cmd.Execute End If Next
Merci et à +
www.i--land.com
-----Message d'origine----- Bonjour Loïc, Je ne sais pas si ca répond exactement à ton problème mais
ca doit pas en être trop loin: Essaies ca : bout de code ecrit avec DAO 3.x Sub PropertyTable() Dim bd As Database Dim t As TableDef Set bd = CurrentDb ' 6 est un index qui représente la 6eme table ' ne pas oublier les tables Msys qui entrent dans la collection Set t = bd.TableDefs(6) Dim p As Property With t Debug.Print t.Name Debug.Print .Attributes Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value Next p End With End Sub
Sub PropertyQuery() On Error Resume Next 'car p.value plante sur certaines
propriétés Dim bd As Database Dim rq As QueryDef Set bd = CurrentDb Set rq = bd.QueryDefs(0) Dim p As Property With rq Debug.Print .Name Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value, p.Inherited Next p End With End Sub
Sub PropertyForm() Dim objet As AccessObject For Each f In Application.CurrentProject.AllForms 'voir dans l'aide l'acces à la ' collection : AccessObjectProperties Debug.Print f.Name Next f End Sub La collection AllForms contient tous les forms de la base qu'ils soient ouverts ou non contrairement à la collection
Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+ Eric
-----Message d'origine----- Je cherche à récupérer (en VBA) la description d'un objet
Access (table, requête, formulaire...) telle qu'elle a été
saisie dans la fenêtre Base de données (propriétés de l'objet).
Je ne la vois apparaître nulle part, pas même dans MSysObjects où là, par contre, on peut récupérer la date de création et de dernière modif de l'objet.
Merci d'avance ! .
.
Salut Eric,
J'ai trouvé la solution (merci quand même de t'être penché
sur ce petit problème !). En fait, j'étais passé par la
table MSysObjects pour tenter de récupérer la description
(d'une table par exemple). Au passage, j'ai repéré les
colonnes DateCreation et LastUpdated. Mais ces 2 colonnes
correspondent à 2 propriétés d'un objet Document et
portent le même nom. Alors, pourquoi pas Description ? Et
bien il suffit de "forcer le passage", comme souvent sous
Access : même si la propriété Description n'apparaît pas
dans la liste des propriétés d'un objet Document, et même
si elle n'est pas documentée (sauf un chouia dans MSDN
Office Developer), elle est pourtant bien là :
Voici le code (Access2000)
Dim o As AccessObject
For Each o In db.CurrentData.AllTables
If Left(o.Name, 4) <> "MSys" Then 'table système
cmd.Parameters("datecreation") =
db.CurrentDb.Containers(8).Documents(o.Name).DateCreated
cmd.Parameters("datemodif") =
db.CurrentDb.Containers(8).Documents(o.Name).LastUpdated
cmd.Parameters("nomobjet") = o.Name
cmd.Parameters("description") =
db.CurrentDb.Containers(8).Documents(o.Name).Properties
("Description").Value
cmd.Execute
End If
Next
Merci et à +
loic.dumas@fnac.net
www.i--land.com
-----Message d'origine-----
Bonjour Loïc,
Je ne sais pas si ca répond exactement à ton problème
mais
ca doit pas en être trop loin:
Essaies ca : bout de code ecrit avec DAO 3.x
Sub PropertyTable()
Dim bd As Database
Dim t As TableDef
Set bd = CurrentDb
' 6 est un index qui représente la 6eme table
' ne pas oublier les tables Msys qui entrent dans la
collection
Set t = bd.TableDefs(6)
Dim p As Property
With t
Debug.Print t.Name
Debug.Print .Attributes
Debug.Print .DateCreated
Debug.Print .LastUpdated
For Each p In .Properties
Debug.Print vbTab & p.Name, p.Type, p.Value
Next p
End With
End Sub
Sub PropertyQuery()
On Error Resume Next 'car p.value plante sur
certaines
propriétés
Dim bd As Database
Dim rq As QueryDef
Set bd = CurrentDb
Set rq = bd.QueryDefs(0)
Dim p As Property
With rq
Debug.Print .Name
Debug.Print .DateCreated
Debug.Print .LastUpdated
For Each p In .Properties
Debug.Print vbTab & p.Name, p.Type, p.Value,
p.Inherited
Next p
End With
End Sub
Sub PropertyForm()
Dim objet As AccessObject
For Each f In Application.CurrentProject.AllForms
'voir dans l'aide l'acces à la
' collection : AccessObjectProperties
Debug.Print f.Name
Next f
End Sub
La collection AllForms contient tous les forms de la base
qu'ils soient ouverts ou non contrairement à la
collection
Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+
Eric
-----Message d'origine-----
Je cherche à récupérer (en VBA) la description d'un
objet
Access (table, requête, formulaire...) telle qu'elle a
été
saisie dans la fenêtre Base de données (propriétés de
l'objet).
Je ne la vois apparaître nulle part, pas même dans
MSysObjects où là, par contre, on peut récupérer la date
de création et de dernière modif de l'objet.
J'ai trouvé la solution (merci quand même de t'être penché sur ce petit problème !). En fait, j'étais passé par la table MSysObjects pour tenter de récupérer la description (d'une table par exemple). Au passage, j'ai repéré les colonnes DateCreation et LastUpdated. Mais ces 2 colonnes correspondent à 2 propriétés d'un objet Document et portent le même nom. Alors, pourquoi pas Description ? Et bien il suffit de "forcer le passage", comme souvent sous Access : même si la propriété Description n'apparaît pas dans la liste des propriétés d'un objet Document, et même si elle n'est pas documentée (sauf un chouia dans MSDN Office Developer), elle est pourtant bien là :
Voici le code (Access2000)
Dim o As AccessObject
For Each o In db.CurrentData.AllTables If Left(o.Name, 4) <> "MSys" Then 'table système cmd.Parameters("datecreation") = db.CurrentDb.Containers(8).Documents(o.Name).DateCreated cmd.Parameters("datemodif") = db.CurrentDb.Containers(8).Documents(o.Name).LastUpdated cmd.Parameters("nomobjet") = o.Name cmd.Parameters("description") = db.CurrentDb.Containers(8).Documents(o.Name).Properties ("Description").Value cmd.Execute End If Next
Merci et à +
www.i--land.com
-----Message d'origine----- Bonjour Loïc, Je ne sais pas si ca répond exactement à ton problème mais
ca doit pas en être trop loin: Essaies ca : bout de code ecrit avec DAO 3.x Sub PropertyTable() Dim bd As Database Dim t As TableDef Set bd = CurrentDb ' 6 est un index qui représente la 6eme table ' ne pas oublier les tables Msys qui entrent dans la collection Set t = bd.TableDefs(6) Dim p As Property With t Debug.Print t.Name Debug.Print .Attributes Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value Next p End With End Sub
Sub PropertyQuery() On Error Resume Next 'car p.value plante sur certaines
propriétés Dim bd As Database Dim rq As QueryDef Set bd = CurrentDb Set rq = bd.QueryDefs(0) Dim p As Property With rq Debug.Print .Name Debug.Print .DateCreated Debug.Print .LastUpdated For Each p In .Properties Debug.Print vbTab & p.Name, p.Type, p.Value, p.Inherited Next p End With End Sub
Sub PropertyForm() Dim objet As AccessObject For Each f In Application.CurrentProject.AllForms 'voir dans l'aide l'acces à la ' collection : AccessObjectProperties Debug.Print f.Name Next f End Sub La collection AllForms contient tous les forms de la base qu'ils soient ouverts ou non contrairement à la collection
Forms.
A devolopper plus en avant pour avoir plus d'info ;-)
A+ Eric
-----Message d'origine----- Je cherche à récupérer (en VBA) la description d'un objet
Access (table, requête, formulaire...) telle qu'elle a été
saisie dans la fenêtre Base de données (propriétés de l'objet).
Je ne la vois apparaître nulle part, pas même dans MSysObjects où là, par contre, on peut récupérer la date de création et de dernière modif de l'objet.