IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Extraction Access vers fichier texte


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Extraction Access vers fichier texte
    Bonjour

    je souhaite réaliser un script en batch (si possible) qui réalise la chose suivante:

    extraire le contenu d'une table de base Access (requête), et le copier dans un fichier texte/séparateur (csv ou txt peu importe).
    Ensuite peut-être, l'envoyer régulièrement sur un ftp sécurisé - à moins que cette dernière manip ne soit faite via Cobian backup 10 -

    Précision importante : les bases Access ne sont PAS modifiables par ajout de macros VB (programme propriétaire et bases régulièrement mises à jour).

    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;"

    et ensuite je sèche... j'ai bien sûr fait une panoplie de recherches sur le net avant de poster. Et n'ai jamais réalisé de script batch, encore moins powershell.

    Votre aide sera précieuse, merci.

  2. #2
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 191
    Points
    191
    Par défaut
    Bonjour,

    1: je crois que la commande "sqlcmd" permet de taper dans des fichiers de base de donnée access (j'ai jamais utilisé, a toi d’approfondir la choses si sa t’intéresse)

    2: tu a (par exemple) la commande externe psftp pour les transferts de fichiers ftp sécurisé.

    donc si tu arrive a faire tes transferts de fichiers sécurisé et que tu sais récupérer le résultat d'une requête dans un fichier, je pourrais t'aider pour la suite si tu veux.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Excellente piste
    j'approfondis et reviens poster mes avancées...

    merci!

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Non ça ne colle pas
    Bonjour,

    non, cette commande sqlcmd ne sert que pour SQL Server pas pour mes bases Access.

    [ Pour info, environnement win 2003 server + Access 2003 mais je teste sur win 7 pro + access 2010 mode compatibilité]

    D'autres idées SVP ?
    Une fois faite la requête je ne parviens pas à en rediriger le contenu vers un fichier.

    D'avance merci pour d'autres pistes...

  5. #5
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 191
    Points
    191
    Par défaut
    pour rediriger ta commande dans un fichier en général on peut faire:

    commande >"c:\fichier"
    commande 1>"c:\fichier" (redirection standard)
    commande 2>"c:\fichier" (redirection d'erreurs)

    details: http://technet.microsoft.com/en-us/l.../bb490982.aspx

    tu à déjà fais cela ?

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    j'avais fait
    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" > D:\monRep\monsousRep\test.txt

    le fichier texte est écrasé à chaque fois mais reste tjrs vide (ai essayé aussi en mode append >>)

    sinon

    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" 1> D:\monRep\monsousRep\test.txt
    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" 2> D:\monRep\monsousRep\test.txt
    ne donnent rien de plus ?
    Merci

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut pas d'avancée
    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" > D:\monRep\monsousRep\test.txt 2>&1

    est la bonne syntaxe; mon fichier texte reste désespérément vide...

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Help
    Personne n'a d'idée svp ?
    Je n'ai pas trouvé l'ombre d'une piste sur le web.
    J'ai même temporairement désactivé l'uac au cas où, sans résultat.
    Pour les pro c'est sans doute une question "bateau"... ne suis pas programmeur, merci de vos tuyaux.

  9. #9
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    salut,

    Citation Envoyé par activix Voir le message
    start /WAIT msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" > D:\monRep\monsousRep\test.txt
    Je doute fort que ce genre de requête envoie un quelconque résultat en sortie, tu devrais, je pense, t'orienter vers une macro...

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Macro pas possible
    Macro pas possible, comme expliqué : les bases Access appartiennent à un programme loué. Pas d'autorisation d'y toucher.

    Donc pour être clairs : il n'y a aucune possibilité de faire cette pauvre manip en batch ?
    Powershell m'aidera-t-il ?

    D'avance merci de vos nouvelles réponses.

  11. #11
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 191
    Points
    191
    Par défaut
    pourquoi "start /wait" ?? sa marche pas sans le start ?

    après si ta commande renvoi bien tes données dans la fenêtre ya pas de problème, mais si sa renvoi rien c'est sur que sa marchera jamais de cette manière.

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Pas sans Start
    Non c'est la procédure
    ça ne fonctionne pas sans le start.

    Bizarre que jamais personne n'ai été confronté au pb ici ?

    Et powershell (que je connais encore moins mais devrai apprendre en accéléré afin de faire mon petit script "pour hier") : j'ai qq espoirs ou pas du tout ?

    Merci

  13. #13
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 191
    Points
    191
    Par défaut
    Bon.... j'ai fait un test et voila ce que sa donne:

    marche pas:
    start /WAIT test2.bat "parametre 1" "parametre 2" >"tmp.log"

    marche !
    start /WAIT /b test2.bat "parametre 1" "parametre 2" >"tmp.log"

    donc de 1 ta "procédure" n'est pas correcte et de 2 je n'ai jamais vu qu'il faille obligatoirement utiliser start pour utiliser access en ligne de commande.

    EDIT:est-tu sûr que msaccess.exe soit utilisable en ligne de commande ? car j'ai vu qu'on peut ajouter des paramètres au démarrage mais pas d'utilisation en ligne de commande...

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    start /WAIT /b msaccess.exe "D:\monRep\monsousRep\maBase.mdb" /cmd "Select * from maTable;" > D:\monRep\monsousRep\test.txt
    marche pô...

    pour la formule, vue dans un tutoriel... j'essaie de le retrouver d'ici demain.
    Merci

    et powershell....?

  15. #15
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Je n'utilise pas access, mais je vois vraiment pas pourquoi un simple "select" devrait envoyer un résultat, et encore moins vers la sortie standard stdout. Que ta base soit louée, je veux bien, mais en même temps je ne vois pas ce qui t'interdit de l'utiliser ou de l'interroger avec une macro, basée sur un nouveau fichier, qui reproduirait le même travail que toi dans un usage normal.

  16. #16
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Points : 191
    Points
    191
    Par défaut
    j'ai trouvé: http://jpcheck.developpez.com/tutori...ge-parametres/
    partie "XII. Codes VBA et Batch"

    citation:
    Ces paramètres sont ensuite récupérés par la fonction Command( ) dans une fonction VBA, lancée à l'ouverture du fichier mdb[...]La fonction qui permet de récupérer les paramètres passés dans le batch est de la forme[...]On doit donc créer une macro nommée AutoExec, qui exécutera la fonction.

    donc quoi qu'il arrive tu est obligé de passer par une macro.
    a mon avis le problème n'est pas du coté du batch ou du powershell mais bien de l'utilisation d'access, et la je ne peut pas t'aider.

  17. #17
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Il faudrait faire un nouveau fichier macro.mdb qui ouvrirait et interrogerait mabase.mdb et qui consignerais le résultat dans test.txt

    Et le mieux est effectivement de voir du côté du forum VBA ou Access...

  18. #18
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut macro dans un fichier
    ok je n'avais pas pensé qu'une macro pouvait être réalisée à part, merci minnesota.
    Et merci Cmanix, eh oui c'est bien le tuto qui m'a donné le début de mon code et la commande start /WAIT.
    Je n'ai jamais programmé qu'un peu de php avec htmld, qq bouts de scripts vb, du pain sur la planche en perspective pour ces besoins très ponctuels.
    Vous tiens au courant de la suite, si l'on m'octroie le temps nécessaire pour coder.

Discussions similaires

  1. Export base Access vers fichier texte et mise en forme
    Par Neau57 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/07/2010, 09h04
  2. Table d'une Bde Access vers fichier .txt
    Par cefabien dans le forum Access
    Réponses: 2
    Dernier message: 08/12/2005, 11h31
  3. SQL vers Fichier Texte
    Par annedjomo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/11/2005, 11h47
  4. Export vers fichier text
    Par Aurèl90 dans le forum Access
    Réponses: 10
    Dernier message: 26/10/2005, 10h26
  5. Access 2000 Fichiers textes
    Par stargates dans le forum Access
    Réponses: 1
    Dernier message: 02/10/2005, 22h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo