cameleon044
Messages postés36Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention22 novembre 2012
-
21 nov. 2012 à 14:41
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
23 nov. 2012 à 01:25
Bonjour,
Dans le but d'exporter les modules de différentes bases de données Access 97, j'ai créé un petit complément Access.
Cependant je rencontre plusieurs problèmes lors de l'export :
J'ai commencé par parcourir mes containers de type "Modules" afin d'exécuter la commande suivante :
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acModule, dc.Name, dc.Name
j'obtiens l'erreur suivante : Erreur d'exécution '32813', La méthode 'TransfertDatabase' de l'objet 'IDoCmd' a échoué.
(le dc.Name a bien pour valeur "Module1" et db.name à bien pour valeur une base de données existante.) De plus, cette commande est utilisée quelques lignes au dessus pour exporter un état.
Ne trouvant pas de solution avec cette méthode, j'ai également essayé d'accéder aux modules via Application.Modules mais malheureusement, cette méthode liste les modules de mon complément et non ceux de la base de données ouverte.
cameleon044
Messages postés36Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention22 novembre 2012 21 nov. 2012 à 16:39
Pour Info, l'erreur venait de la création de la nouvelle base (cible). Elle était créée via la commande : Set dbTemp = ws.CreateDatabase(dbName, dbLangGeneral)
et en la remplacant par : DBEngine.CreateDatabase dbName, dbLangGeneral tout fonctionne correctement.
(je ne comprend cependant pas pourquoi le ws.CreateDatabase fonctionne pour l'export des états)
cameleon044
Messages postés36Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention22 novembre 2012 22 nov. 2012 à 09:27
Grosse erreur, la réponse précédente ne résoud absoluemnet pas le problème (logique). Le problème était simplement qu'Access refuse d'exporter un module dans une base portant le même nom (action cependant possible pour les reports, forms, tables...)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 21 nov. 2012 à 15:00
Salut
Je ne connais pas ces objets, mais si tu dis l'utiliser au dessus, peut-être faut-il faire un Close du DoCmd avant de pouvoir le réutiliser (comme avec les RecordSet).
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cameleon044
Messages postés36Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention22 novembre 2012 21 nov. 2012 à 15:26
Merci de ta réponse mais malheureusement le DoCmd.close ferme le projet courant, et même seule cette commande (ie transfertDatabase) ne fonctionne pas pour les modules
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 23 nov. 2012 à 01:25
Où se trouve la ligne de commande dont tu parles par rapport au module que tu tentes d'exporter ?
Si la commande se trouve à l'intérieur du module, peut-être ne peux-tu pas l'exporter ...
Je viens de faire l'essai sous Access 2010 et, en effet, la copie du module dans lequel l'instruction est utilisée pose problème (bien qu'il fasse la copie quand même), mais avec l'erreur 29068 : "Microsoft Access ne peut achever l'opération. Vous devez interrompre l'exécution du code et recommencer."
dbName contient-il le chemin complet et le nom de la DB ?
Le nom du module source et destination (2 derniers paramètres) sont identiques ! Je ne pense pas que l'on puisse copier un module sur lui même.