Bonjour,
Je cherche à définir dans les propriétés du fichier un numéro de version pour une application Access créé.
Et après qu'on puisse la lire sans ouvrir le fichier.
Version utilisée :Projet Access 2007 (.adp)
Avez-vous une idée? merci
Version imprimable
Bonjour,
Je cherche à définir dans les propriétés du fichier un numéro de version pour une application Access créé.
Et après qu'on puisse la lire sans ouvrir le fichier.
Version utilisée :Projet Access 2007 (.adp)
Avez-vous une idée? merci
Bonjour,
L'endroit potentiel pour inscrire une version serait dans les propriétés personnelles de la base de données au niveau fichier.
Tu devrais trouver cela dans :
où tu définirais le nom "Version" par exemple...Code:CurrentDB.Containers!Databases.Documents!UserDefined.Properties
Pour éviter l'erreur 3270, je te préconnise d'aller dans la FAQ pour savoir comment créer dynamiquement une propriété...
Argy
Je suppose que cela correspond à l'instruction que j'utilise : CurrentProject.Properties.item(PropX).value
Cependant on est obligé d'ouvrir le fichier pour lire l'info !
1/ Non pas vraiment...
2/ Il y a ouvrir et ouvrir...
Un Workspace avec sa méthode OpenDatabase via un objet Database me semble relativement discrets pour que cela réponde à ta demande... C'est un fichier et non un programme ou un composant donc il ne régit pas le phénomène de version tel que tu le souhaites.
Argy
Bonjour,
1) Comment on définit une propriété avec CurrentDB.Containers!Databases.Documents!UserDefined.Properties?
2)Je ne vais pas pouvoir utiliser l’instruction OpenDatabase, car j'ai un Runtime Access, mais plutôt une instruction Shell ou ShellExecute avec un Do...Loop. Et là je trouve que c'est plus long et moins transparent qu'avec OpenDatabase.
Alexandre
Tu ne pourras pas faire d'OLE automation avec le Runtime.
En ravanche, la méthode OpenDatabase fonctionne bien avec un Runtime contrairement à ce que tu soulignes...
Voici un exemple testé depuis VBE Excel avec une référence à DAO 3.6 :
Bien entendu, la propriété Version a été ajoutée à la base ComptoirTest.mdb.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub TestOwnPropertyFromVBAExcel() Dim WS As DAO.Workspace Dim DB As DAO.Database Dim RS As DAO.Recordset Set WS = DBEngine.CreateWorkspace("TEST", "Admin", "") Set DB = WS.OpenDatabase("C:\Documents and Settings\VMWUser\Bureau\ComptoirTest.mdb", False) Set RS = DB.OpenRecordset("SELECT * FROM Clients", 2) Debug.Print "Juste pour voir : " & RS.Fields(2).Value Debug.Print "Version " & DB.Containers!Databases.Documents!UserDefined.Properties("Version") RS.Close DB.Close WS.Close Set RS = Nothing Set DB = Nothing Set WS = Nothing End Sub
Argy
Merci pour tes réponses,
Mais je tiens à repréciser que je suis dans un environnement Project Access(Adp+ sql server) avec Runtime Access 2007. Donc pas de DAO !
Alexandre
Bonsoir,
En cherchant dans une autre direction, j'ai découvert ceci : Dsofile.dll
C'est une dll activeX permettant de manipuler les propriétés d'un document fichier, par automation.
J'ai testé sur un fichier adp : j'ai pu créer une propriété personnalisée.
Celle-ci est visible dans l'onglet "Personnaliser" de la feuille de propriétés du fichier, lorsqu'on fait clic-droit sur le fichier, puis que l'on choisi "Propriétés" dans le menu contextuel.
Toujours avec cette dll activeX, j'ai pu ensuite lire cette propriété.
A+
Bonsoir,
J'ai testé la dll DSOfile, ça marche très bien sur un poste avec un access complet, mais avec un runtime j'ai l'erreur 429 - Un composant ActiveX ne peut pas créer d'objet.
Erreur sur la ligne Set DSO=New DSOFile.OleDocumentProperties.
Malgré la réinstalle de la dll : dao360.dll.
Et j'ai testé sur 2 postes différents.
C'est pas gagné...
Bonsoir,
La dll fonctionne indépendamment d'Office.
Par exemple en VB Script
Il faut bien enregistrer la dll (dsofile.dll) sur la station de travail avec regsvr32.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim oDSOFile Set oDSOFile = CreateObject("DSOFile.OleDocumentProperties") oDSOFile.Open "C:\Mes Documents\.. ..\TstFileProp.adp", True varVersion = 0 On Error Resume Next varVersion = oDSOFile.CustomProperties("Version").Value On Error goto 0 MsgBox varVersion oDSOFile.Close False Set oDSOFile = Nothing
Pour ma part je n'ai pu tester qu'avec Windows XP.
Donc, je ne suis sûr de rien pour Vista et Seven...
A+
Résolu !
Merci à vous deux, notamment LedZeppII,
J'ai testé sous XP et Seven çà marche.
J'avais oublié d'enregistrer la dll.:oops:
Alexandre