Exporter un module Access 97

Résolu
cameleon044 Messages postés 36 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 22 novembre 2012 - 21 nov. 2012 à 14:41
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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.

Merci d'avance pour votre aide,

Kevin

5 réponses

cameleon044 Messages postés 36 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 22 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)
3
cameleon044 Messages postés 36 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 22 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...)
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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)
0
cameleon044 Messages postés 36 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 22 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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.

Que représente "dc" ?
0
Rejoignez-nous