OVH Cloud OVH Cloud

VB : Export des tables en fichiers txt

2 réponses
Avatar
pascal
Bonsoir,

PLEASE HELP!!!
J'ai besoin d'exporter les tables d'une base Access en mode de commande.
J'ai essayé de 2 manières :

1-

Création dans la base Access d'une macro :

Public Sub test()
DoCmd.TransferText acExportDelim, "", "MP_VPD", "C:\test.txt", False, ""
End Sub

puis j'exécute le code suivant dans un fichier vbs :

Set objAccess = CreateObject("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase "C:\Base.mdb", False
objAccess.Run "test"
objAccess.Quit
set objAccess=Nothing

Résultat :
- En lancant manuellement la macro à partir d'Access l'export se déroule
correctement.
- En lancant à partir du vbs j'ai le message suivant :
"Microsoft Office Access ne peut pas trouver la procédure 'test'."

Je ne comprends pas ma procédure "test" est bien déclarée et fonctionne
lorsque je la lance manuellement!!!

2 -

J'ai essayé d'envoyer la commande d'export directement à partir du fichier
vbs :

Set objAccess = CreateObject("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase "C:\IBMDirector.mdb", False
objAccess.DoCmd.TransferText acExportDelim, "", "Table", "C:\test.txt",
False, ""
objAccess.Quit
set objAccess=Nothing

Résultat :
Un message d'erreur m'indique : "Vous ne pouvez pas importer ce fichier"
A priori il veut l'importer alors que je demande un export (acExportDelim)

MERCI POUR VOTRE AIDE

2 réponses

Avatar
Bonjour

Si tu n'y arrives pas par vbs :

Remplacer Sub Test() par Function Test() afin de pouvoir l'appeler depuis une macro access avec
l'action exécuter code.

Nommer cette macro "Export"

Ouvrir la base access en mode ligne de commande

msaccess /x "Export" "F:Mes documentstabase.mdb"

Prévoir dans la macro une ligne pour fermer la base après exécution de ta fonction
d'exportation.

--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------

"pascal" a écrit dans le message de news:

| Bonsoir,
|
| PLEASE HELP!!!
| J'ai besoin d'exporter les tables d'une base Access en mode de commande.
| J'ai essayé de 2 manières :
|
| 1-
|
| Création dans la base Access d'une macro :
|
| Public Sub test()
| DoCmd.TransferText acExportDelim, "", "MP_VPD", "C:test.txt", False, ""
| End Sub
|
| puis j'exécute le code suivant dans un fichier vbs :
|
| Set objAccess = CreateObject("Access.Application")
| objAccess.Visible = False
| objAccess.OpenCurrentDatabase "C:Base.mdb", False
| objAccess.Run "test"
| objAccess.Quit
| set objAccess=Nothing
|
| Résultat :
| - En lancant manuellement la macro à partir d'Access l'export se déroule
| correctement.
| - En lancant à partir du vbs j'ai le message suivant :
| "Microsoft Office Access ne peut pas trouver la procédure 'test'."
|
| Je ne comprends pas ma procédure "test" est bien déclarée et fonctionne
| lorsque je la lance manuellement!!!
|
| 2 -
|
| J'ai essayé d'envoyer la commande d'export directement à partir du fichier
| vbs :
|
| Set objAccess = CreateObject("Access.Application")
| objAccess.Visible = False
| objAccess.OpenCurrentDatabase "C:IBMDirector.mdb", False
| objAccess.DoCmd.TransferText acExportDelim, "", "Table", "C:test.txt",
| False, ""
| objAccess.Quit
| set objAccess=Nothing
|
| Résultat :
| Un message d'erreur m'indique : "Vous ne pouvez pas importer ce fichier"
| A priori il veut l'importer alors que je demande un export (acExportDelim)
|
| MERCI POUR VOTRE AIDE
Avatar
pascal
Merci beaucoup la méthode que tu proposes fonctionne correctement


Bonjour

Si tu n'y arrives pas par vbs :

Remplacer Sub Test() par Function Test() afin de pouvoir l'appeler depuis une macro access avec
l'action exécuter code.

Nommer cette macro "Export"

Ouvrir la base access en mode ligne de commande

msaccess /x "Export" "F:Mes documentstabase.mdb"

Prévoir dans la macro une ligne pour fermer la base après exécution de ta fonction
d'exportation.

--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------

"pascal" a écrit dans le message de news:

| Bonsoir,
|
| PLEASE HELP!!!
| J'ai besoin d'exporter les tables d'une base Access en mode de commande.
| J'ai essayé de 2 manières :
|
| 1-
|
| Création dans la base Access d'une macro :
|
| Public Sub test()
| DoCmd.TransferText acExportDelim, "", "MP_VPD", "C:test.txt", False, ""
| End Sub
|
| puis j'exécute le code suivant dans un fichier vbs :
|
| Set objAccess = CreateObject("Access.Application")
| objAccess.Visible = False
| objAccess.OpenCurrentDatabase "C:Base.mdb", False
| objAccess.Run "test"
| objAccess.Quit
| set objAccess=Nothing
|
| Résultat :
| - En lancant manuellement la macro à partir d'Access l'export se déroule
| correctement.
| - En lancant à partir du vbs j'ai le message suivant :
| "Microsoft Office Access ne peut pas trouver la procédure 'test'."
|
| Je ne comprends pas ma procédure "test" est bien déclarée et fonctionne
| lorsque je la lance manuellement!!!
|
| 2 -
|
| J'ai essayé d'envoyer la commande d'export directement à partir du fichier
| vbs :
|
| Set objAccess = CreateObject("Access.Application")
| objAccess.Visible = False
| objAccess.OpenCurrentDatabase "C:IBMDirector.mdb", False
| objAccess.DoCmd.TransferText acExportDelim, "", "Table", "C:test.txt",
| False, ""
| objAccess.Quit
| set objAccess=Nothing
|
| Résultat :
| Un message d'erreur m'indique : "Vous ne pouvez pas importer ce fichier"
| A priori il veut l'importer alors que je demande un export (acExportDelim)
|
| MERCI POUR VOTRE AIDE