Récupérer la date de modification d'un formulaire
Le
viny
Bonjour,
Je voudrais créer une sorte de libraire qui se met à jour de manière
automatique. Je m'explique, j'ai plusieurs formulaires qui sont
identiques dans différentes bases de données access. Pour faciliter
la compréhension, on va appeller ces bases de données
"application1.mdb", "application2.mdb", Je voudrais mettre ces
formulaires dans un mdb genre "maLibrairie.mdb".
Toujours selon mon exemple, au lancement de "application1.mdb", j'ouvre
un formulaire "update" qui va controler que la date de modification des
formulaires contenu dans "maLibrairie.mdb" est égale à la date du
même formulaire contenu dans "application1.mdb". Si ce n'est pas le
cas, effacer le formulaire dans "application1.mdb" et importer celui de
"maLibrairie.mdb".
Mon soucis c'est de récupérer cette date de modification. J'ai bien
remarqué qu'Access stockait une date dans "MSysObjects" mais cette
date ne semble pas se mettre à jour après une modification.
J'ai aussi utilisé le code suivant pour récupérer la date mais même
constatation:
Public Sub tt()
Dim docS As Documents
Dim doc As Document
Dim contS As Containers
Dim cont As Container
For Each cont In CurrentDb.Containers
If cont.Name = "Forms" Then Exit For
Next
Set docS = cont.Documents
For Each doc In docS
MsgBox doc.Name & " " & doc.DateCreated & " " & doc.LastUpdated
Next
End Sub
Pourtant lorsque je clique droit (menu propriété) sur un formulaire
qui vient d'être modifié la date de modification est correct.
Quelqu'un sait-il comment récupérer cette date?
Je voudrais créer une sorte de libraire qui se met à jour de manière
automatique. Je m'explique, j'ai plusieurs formulaires qui sont
identiques dans différentes bases de données access. Pour faciliter
la compréhension, on va appeller ces bases de données
"application1.mdb", "application2.mdb", Je voudrais mettre ces
formulaires dans un mdb genre "maLibrairie.mdb".
Toujours selon mon exemple, au lancement de "application1.mdb", j'ouvre
un formulaire "update" qui va controler que la date de modification des
formulaires contenu dans "maLibrairie.mdb" est égale à la date du
même formulaire contenu dans "application1.mdb". Si ce n'est pas le
cas, effacer le formulaire dans "application1.mdb" et importer celui de
"maLibrairie.mdb".
Mon soucis c'est de récupérer cette date de modification. J'ai bien
remarqué qu'Access stockait une date dans "MSysObjects" mais cette
date ne semble pas se mettre à jour après une modification.
J'ai aussi utilisé le code suivant pour récupérer la date mais même
constatation:
Public Sub tt()
Dim docS As Documents
Dim doc As Document
Dim contS As Containers
Dim cont As Container
For Each cont In CurrentDb.Containers
If cont.Name = "Forms" Then Exit For
Next
Set docS = cont.Documents
For Each doc In docS
MsgBox doc.Name & " " & doc.DateCreated & " " & doc.LastUpdated
Next
End Sub
Pourtant lorsque je clique droit (menu propriété) sur un formulaire
qui vient d'être modifié la date de modification est correct.
Quelqu'un sait-il comment récupérer cette date?

Poser une question


que pour les tables.
Tu peux utiliser ceci :
Public Function GetFormDateModif(ByVal FormName As String) As Date
GetFormDateModif = CurrentProject.AllForms(FormName).DateModified
End Function
Je ne sais pas sur quelle version d'access tu es. Moi j'ai la version
2000. Et la methode "DateModified" n'est pas membre de AllForms...
Je n'ai que:
Application
Count
Item
Parent
Donc ca marche pas évidement...., ca fonctionne chez toi?...
classe AccesssObject. La méthode Item de la classe AllForms renvoie un objet
AccessObject qui représente un formulaire.
CurrentProject.AllForms(FormName).DateModified
Ou encore (explicitement) :
CurrentProject.AllForms.Item(FormName).DateModified
quand j'exécute le code:
CurrentProject.AllForms(FormName).DateModified
ou
CurrentProject.AllForms.Item(FormName).DateModified
en remplaçant "FormName" par un nom d'un de mes formulaires... il me
répond:
Propriété ou méthode non gérée par cet objet...
M$... qui m'enlève tout espoire de trouver une solution:
http://support.microsoft.com/kb/299554/en-us
dixit: "Unfortunately, Microsoft Access 2000 does not currently expose
this information in its object model; therefore, there is no
programmatic way to get to this information in Microsoft Access 2000."
Merci M$....