Problème pour copier une table d'une base vers une autre avec Docmd.copyobject [Résolu]

Signaler
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
-
Messages postés
2
Date d'inscription
samedi 3 janvier 2009
Statut
Membre
Dernière intervention
14 juillet 2009
-
Bonjour,

Je tente de mettre en place le moyen de copier une table "table_stockage_nvnoind" vers une base de données externe le tout sous un bouton évènement Onclick.

Voici la ligne de code censée faire la copie vers la base externe:

Docmd.copyObject acOutputTable, "table_stockage_nvnoind" , , "u:\dept\stage\essaibase2.mdb"

Lorsque cette ligne est rajoutée et exécutée Access m'affiche l'erreur suivante:

"The object type argument for the action or method is blank or invalid."

Je n'arrive pas à éviter cette erreur, pourriez vous m'éclairer concernant la synthaxe envisageable pour copier cette table de cette manière?

Merci

12 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
copyobject est une Méthode et pas une Fonction.
Donc pas de parenthère.Il faut juste un espace
après Copybject.
Si c' était une fonction tu devrais écrire
Monvar=copyobject(....)

Essaies donc
Docmd.copyobject "u:\dept\stage\essaibase2.mdb", "table_stockage_nvnoind",acTable,
"table_stockage_nvnoind"

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Salut,
il s' agit probablement de l' argument non spécifié dans
Docmd.copyObject acOutputTable, "table_stockage_nvnoind" , , "u:\dept\stage\essaibase2.mdb"


Je ne sais pas ce que tu dois mettre comme argument après
"table_stockage_nvnoind" , ICI ,


Personnellement pour copier une table vers une base externe,
mon expression sql se présente ainsi:
"INSERT INTO Table_Destination IN " & _Chemin_Base_Externe &  _
"SELECT * FROM Table_Source;"





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Suggestion:
Docmd.copyObject acOutputTable, "table_stockage_nvnoind" ,acTable , "u:\dept\stage\essaibase2.mdb"

ou bien

Docmd.copyObject acOutputTable, "table_stockage_nvnoind" ,acQuery , "u:\dept\stage\essaibase2.mdb"
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
si tu as SQL server 2005 express utilises 'DTSWizard.exe'
avec ça tu passes d'une base à une autre quel que soit le format source ou destination !
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
2
Merci pour vos réponses, visiblement le problème était le manque du renseignement ,acTable ,  .

Maintenant nouveau probléme, il semble ne pas reconnaître le chemin de la base externe en .mdb avec comme message d'erreur:

"Microsoft office Access can't find the object" j'ai pourtant revérifié mon adresse un bon paquet de fois je ne vois vraiment pas ce qui cloche à ce niveau.
 
Le fichier peut être difficile d`accès pour le programme du fait que les fichiers sont dans deux répertoires distants  (mais sur le même disque) ou le problème pourrait être tout autre?

ps: Je dois absolument lancer cette commande via un bouton car je travail sur une base access dans une banque et de ce fait, je ne suis pas autorisé à apporter des changements sur le fonctionnement général de la base et à utiliser des programmes annexes.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Apparament ,DestnationDataBase vient en premier.
Tapes :
Docmd.copyObject
puis <espace>, la liste des arguments s' affichera,
avec tout ce qu' il faut pour s' y retrouver.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
2
Voici ma ligne de code actuelle, modifiée selon ce que LIBRE_MAX m'a suggéré:

Docmd.copyobject ([u:\dept\stage\essaibase2.mdb],[table_stockage_nvnoind],[sourceobjecttype as acobjecttype = acdefault],[table_stockage_nvnoind])

Mon problème est que je ne vois pas vraiment comment renseigner la partie rouge, je pense être bon pour le reste du code.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
il suffisait simplement de lire attentivement la description de l' argument.
sourceobjecttype as ==> type de l' objet source
Dans ton cas c' est une table ==> acTable (comme donné précédement)

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
tu remarquera que si l' argument n' est pas renseigné, il prendera la valeur par defaut acDefault.Perso je ne sais pas ce qu' elle type c' est "le par default"..Or ceci ne correspond pas au type de ton objet reel,à savoir une table.
Essaies donc:
Docmd.copyobject ([u:\dept\stage\essaibase2.mdb],[table_stockage_nvnoind],[acTable],[table_stockage_nvnoind])

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
2
Merci pour ces explications concernant le besoin de renseigner la nature de l'objet utilisé.J'ai bien compris l'idée et j'ai modifié mon code selon ce que tu proposes mais visiblement selon l'erreur qui survient aprés la modification (Compile error Expected : "")  il semble vouloir quelque chose qui suivrait le format suivant: SourceObjectType as AsObjectType AcDefault donc dans mon cas quelque chose comme SourceObjectType as AsObjectType = AcTable mais je ne vois pas  comment renseigner les paramètres SourceObjectType et AsObjectType 
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
2
Exact, le tout fonctionne parfaitement maintenant, merci beaucoup pour ton aide.
Messages postés
2
Date d'inscription
samedi 3 janvier 2009
Statut
Membre
Dernière intervention
14 juillet 2009

Bonjour, je voudrais aussi copier une table dans une autre db. Est ce que tu pourrais m'envoyer ton code, cela m'aiderait.

merci