Bonjour à tous,
Etant nouveau sur ce forum, je vais essayer d'être le plus bref et clair possible.
Ayant Office 2003 professionnel , j'ai développé quelques applications assez complexes en 2003 et elles fonctionnaient correctement.
Pour des raisons de standardisation, j'ai été obligé d'installer Office 2013 Pro (Samedi soir 2/3/2014)
nb. J'avais fait des sauvegardes avant de toutes mes applications (Excel, Access et autres)
Je me suis mis à tester toutes les fonctionnalités de la dernière application (formulaire dynamique, tous les contrôles sont pilotés en vba et toutes les requêtes son programmées)
En fait j'utilise Access pour son interface graphique et son reporting qui est vraiment simple. Tout fonctionne bien pas d'erreurs ! J'en suis assez étonné.
Il est tard (2h30 du matin) je n'insiste pas, je continuerai plus tard dans la journée.
Oh grosse surpeise, en ouvrant la même application avec Access 2003, je reçois systématiquement à l'ouverture d'un formulaire ou en cliquant sur n'importe quel bouton le message suivant :
L'expression sur "chargement entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. L'objet ou la classe de gère pas le jeu d'événements.
Une référence est manquante. ... voir base de connaissance Microsoft 283806 ... Consultez le site Windows Update. (je passe sur tous les détails)
Après avoir essayé le site de MS, ou en finalité je n'ai trouvé que des généralités sur la compatibilité et d'installer le SP3 Office 2003 (ce qui est déjà le cas)
J'ai examiné les références dans Access 2003, j'y trouve bien des modifications du type :
Microsoft Access 15.0 Object Library au lieu de 11.0
OLE Automation pointant sur C:\Windows\SysWOW64\stdole2.tlb au lieu de C:\Windows\System32
Microsoft Internet Controls sur C:\Windows\SysWOW64\jeframe.dll au lieu de C:\Windows\System32
Idem pour Excel, Word et Office 15.0 au lieu de 11.0
Je suis arrivé à remplacer la majorité des références à l'exception de Microsoft Access Object Library (qui est utilisé lorsque l'on ouvre Access)
Mais ceci ne solutionne pas le problème.
1) si j'appelle les fonctions (utilisant ces objets) à partir du code, ça fonctionne. L'erreur survient systématiquement lorsque j'utilise un événement sur n'importe quel controls standard (On_Click, On_Load, On_Open, On_DblClick...?
2) sous Access 2013 par contre l'application fonctionne parfaitement bien.
Ah oui j'oubliais, lorsque j'essaye de modifier le code dans un formulaire, après quelques essais Access 2003 se plante et je suis obligé de "killer" le process voa le gestionnaire de taches.
Heureusement j'ai un second portable ou 2013 n'est pas encore installé, j'ai donc transféré l'application (6 DB dont une avec les reports, forms et modules)
Et patatra, même erreur alors que les applications originelles fonctionnent toujours.
Retour sur la machine ou est installé 2013 avec 2003, je crée une nouvelle base en 2003, un formulaire bidon avec un bouton close, j'exécute et même erreur.
Après des heures de recherches, localement et sur le net, j'imagine le pourquoi, mais ne trouve pas la raison exacte.
Systématiquement lorsque j'ouvre une DB avec 2013 elle devient incompatible avec 2003 (je précise toutefois, lorsque cette DB contient des formulaires ou reports; utilisation systématique de OpenArgs)
Je travaille principalement sur un portable équipé de Windows 8.1 pro et le second est en Windows 7 pro (avec SQL Express 2012) Développement sur maquette Access et portage sur serveur SQL des tables.
Ce n'est probablement pas la meilleure des solutions, mais jusqu'à ce jour facile à utiliser et rapide pour développer.
Si quelqu'un avait une petite idée ou mieux une solution, tout en gardant à l'esprit, la mixité des environnements bien entendu.
Ces applications doivent tourner sur Access 2003, 2007, 2010 (ce qui était le cas) et devraient fonctionner sous 2013.
Un grand merci d'avance.
Partager