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

Access Discussion :

Batch avec mot de passe [AC-2003]


Sujet :

Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Batch avec mot de passe
    Bonjour à tous,

    j'ai un application dévéloppe sous Access et sécurisé para mot de passe (Outils/sécurité/définir le mot de passe de la base de données).

    Coment faire pour lancer un batch windows et executer une macro que j'appelé Macro1?

    Je sais que sans mot de passe il fault utiliser:
    "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "E:\Data\Impression\DRH_BASE.mdb" /x Macro1, mais ça ne marche pas si la base a été protegée.

    Est-ce que quelqu'un peut m'aider, svp?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Avec un SendKeys, tu devrais pour alimenter la zone de mot de passe et simuler l'appuie sur OK (13).

    Il faudra peut-être envisager de faire usage des API SetForeGroundWindow() et un SetFocus() de la fenêtre pour être certain que ton batch ne plante pas.

    Argy

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Je vraiment vous remercie argyronet
    mais vous avez parlé du vrai chinois pour moi...

    J'ai quelque chose du VBA, mais je connais rien des API Windows.
    J'étais en train d'imaginer qu'il serait un peu plus simple (comme _/pwd_)...

    Est-ce que vous pouvez donner un peu plus des details???
    (pas trop, par exemple, où ecrire le code? Sur Access où sur le batch (qu'est un bloc notes)?)

    Merci encore une fois

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Oui, c'est possible...

    Plus simple évidement, c'est écrit dans ce tutoriel...

    Argy

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    J'avais déjà vu ce tuto...

    Mais il dit que n'est pas possible de le faire avec _/pwd_, c'est pour ça que j'ai écrit ici.
    L'option /PWD ne concerne que le mot de passe définit pour la sécurité par groupe de travail (fichier mdw). En aucun elle n'est applicable au mot de passe définit sur le fichier lui-même par le menu Outils/sécurité/définir le mot de passe de la base de données.
    J'ai trouvé aussi quelque chose pour la compactage de la base, mais je n'ai pas su comment l'adapter au cas de la macro...

    Je me chauffe donc pour essayer votre solution avec des API's...
    Si ce n'est pas trop du travail pour vous, comment je pourrais alors commencer?

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Humm, je me suis emballé, je pensais au final que tu avais un MDW avc ton appli.
    Donc, je reviens sur ma 1ère proposition mais c'est effectivement pas simple à mettre en oeuvre si l'on ne connais (comprend serait plus juste) pas VBA.
    Je veux bien te proposer un code exemple...

    Argy

  7. #7
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Si tu n'a pas besoin d'interactions avec l'utilisateur, tu peux essayer d'utiliser un script VBS et piloter Access par automation.

    Code MonScript.vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim accApp
    Dim strBdd
     
    strBdd = "E:\Data\Impression\DRH_BASE.mdb"
    Set accApp = CreateObject("Access.Application")
    accApp.OpenCurrentDatabase strBdd, False, "123456"
    accApp.DoCmd.RunMacro "Macro1"
    accApp.QUIT
    Set accApp = Nothing

    Ligne de commande pour lancer le script (pour créer une tâche planifiée par exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "%WINDIR%\SYSTEM32\WScript.exe" "Chemin\MonScript.vbs"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "%WINDIR%\SYSTEM32\CScript.exe" "Chemin\MonScript.vbs"
    Sinon un double-clic sur le fichier MonScript.vbs depuis l'explorateur Windows.

    A+

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci beaucoup à vous, Argy et LedII

    Le code a bien marché!

    J'ai essayé les deux options pour appeler le script, mais le premier, avec WScript donne un erreur sur la ligne 7 du script.

    Le deuxième option (CScript) marche bien.

  9. #9
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    S'il y a une erreur avec WScript, c'est pas bon.
    Il faudrait la corriger.
    Avec CScript, il se peut que tu n'ai pas le temps de voir l'erreur, ou qu'elle ne puisse pas s'afficher.

    A+

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Je vais voir demain,

    mais je pense que tout a bien se passé, la macro a été exécutée.
    D'après que j'ai dit, je vérifie demain et je poste...

    Merci encore une fois

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut argyronet, LedZeppII , Marc_27,

    une autre idée serait de lire la ligne de commande à l'ouverture.


  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Salut vodiem, bienvenue à la discussion.
    Je ne peux pas faire à l'ouverture car il fault faire l'actualisation de la base pendant la nuit...

    En retournant au sujet des scripts, quel est la difference entre WScript et CScript?

    Le WScript donne toujours un erreur à la ligne 7 (avec la macro), mais pas le CScript, que apparemment marche bien et fait l'update da la base.

  13. #13
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Marc_27 Voir le message
    En retournant au sujet des scripts, quel est la difference entre WScript et CScript?
    • C comme Console (Texte)
    • W comme Windows (Graphique)


    Selon moi, il serait bon de transposer ce code en VBA pour essayer d'intercepter l'erreur si tu n'as pas Microsoft Visual InterDev sinon tu peux lancer en mode pas à pas pour voir.
    Pour ce type de test, fait en sorte que ta Macro ne fasse rien d'autre que d'afficher un message, donc en appeler une spécifique.

    Argy

  14. #14
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par Marc_27
    Je ne peux pas faire à l'ouverture car il fault faire l'actualisation de la base pendant la nuit...
    je ne me suis donc mal exprimé...

    je voyais une exécution de l'application conditionné par ligne de commande.
    lorsque l'application se lance il analyse les paramètres de la ligne de commande (par exemple: vérifier s'il y a un mot de passe, s'il s'agit d'exécuter l'actualisation...)
    cela dit en faisant par: "Outils/sécurité/définir le mot de passe..." je crains qu'aucun code ne s'exécute avant la saisie de mot de passe. il faudrait donc faire la gestion de la saisie du mot de passe.


  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    En fait le script de LedZepII a bien marché, au moins avec le CScript
    Aujoud'hui je n'ai pas eu du temps pour chercher l'erreur du WScript...

    Je vais essayer de le mettre dans le code VBA pour chercher l'erreur, mais je ferais ça lundi.

    Pour le moment,
    je vous remercie (argyronet, LedZeppII, vodiem) pour toute l'aide donnée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Executer Batch en tant qu'Admin AVEC MOT DE PASSE
    Par nc13160 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 18/06/2012, 14h17
  2. Batch pg_dump avec mot de passe
    Par bensra dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/11/2007, 22h59
  3. fichier batch (copie depuis lecteur réseau avec mot de passe
    Par Mickey34 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 09/02/2006, 23h33
  4. acceder a un fichier avec mot de passe
    Par moa378 dans le forum Windows
    Réponses: 16
    Dernier message: 17/05/2005, 13h15
  5. [VB.NET] Fichier Excel vérouillé avec mot de passe
    Par rafano dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2004, 15h36

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