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

VBA Access Discussion :

Création d'un fichier .mde en vba [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut Création d'un fichier .mde en vba
    Bonsoir,

    J'ai cherche à créer un fichier .mde en vba.

    J'ai essayé par Sendkeys, mais comme j'ai des barres de menus personalisées
    Avec docmd.runcommand... j'ai trouvé une aide Microsoft

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function GenerateMDEFile(MyPath As String)
       Dim NAcc As Access.Application
       Set NAcc = CreateObject("Access.Application")
       'Les lignes suivantes simulent l'acceptation du nom par
       'défaut, en cliquant sur Créer MDE, puis sur Enregistrer
       SendKeys MyPath & "{Enter}{Enter}"
       SendKeys "{Enter}"
       NAcc.DoCmd.RunCommand acCmdMakeMDEFile
       Set NAcc = Nothing
    End Function
     
    Private Sub Commande0_Click()
      GenerateMDEFile CurrentProject.Path & "\EvRP.mde"
    End Sub
    Ce code ouvre une seconde session d'Access ... en présentant la fenêtre d'enregistrement en .mde, le chemin et le nom de fichier sont corrects mais dès que e valide, cela me provoque un plantage général : fenêtre Access uniquement avec le fond, pas de menu... bref pas terrible.

    Alors une idée peut être ?

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Bonjour,

    On retrouve ce code assez souvent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim NAcc As Access.Application
     
    Set NAcc = CreateObject("Access.Application")
    'The following lines simulate accepting the default
    'name, clicking Make MDE, and clicking Save
    SendKeys MyPath & "{Enter}{Enter}"
    SendKeys "{Enter}"
    NAcc.DoCmd.RunCommand acCmdMakeMDEFile
    Set NAcc = Nothing
    Cordialement,

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonsoir loufab ,

    Manifestement nos messages se croisent...
    ... une idée sur le plantage ? déjà je pense que la session de Sendkeys serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       SendKeys MyPath & "{TAB}{TAB}"
       SendKeys "{Enter}"

  4. #4
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Re,

    J'ai essayé de tester le code dans la fenêtre d'exécution par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?GenerateMDEFile("C:\EvRP.mde")
    J'ai comme réponse
    Erreur de compilation
    Sub ou Function non définie

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    quand tu généres le fichier manuellement, il te donne te génére le mde ou non ?

  6. #6
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Oui, sans aucun problème...

    La fenêtre d'enregistrement du fichier .mde est bien affichée, le chemin et le nom du fichier passés en paramètre sont bien pris en compte mais la création du fichier ne se fait pas, même en cliquant avec la souris sur le bouton [Créer] du formulaire... plantage !

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Je pense que tu auras plus de chance d'aboutir avec les syscmd non documenté.

    La 603 notamment.

    Cordialement,

  8. #8
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour loufab,

    Merci de ton aide.

    Voilà ce sur quoi je suis arrivé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub cmdTest_Click()
      Dim objAccess
      Dim strPathInputMdb   As String
      Dim strPathOutputMde  As String
      strPathInputMdb = CurrentProject.FullName
      strPathOutputMde = CurrentProject.Path & "\EvRP.mde"
      Set objAccess = CreateObject("Access.Application")
      objAccess.SysCmd 603, strPathInputMdb, strPathOutputMde
      Set objAccess = Nothing
    End Sub
    par contre, pas de message d'erreur... et pas plus de fichier .mde créé.

    Je sèche

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Bonjour,

    C'est normal ! à la différence de la commande du menu la 603 est incapable de créer un mde ou accde à partir d'un fichier ouvert.

    Il faut donc le traiter directement dans la commande sans l'ouvrir au préalable.

    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Compile(madb As String)
     
    Dim app As Application
    Set app = New Access.Application
    If app.SysCmd(603, madb & ".mdb", madb & ".mde") = 0 Then
       MsgBox "impossible"
    End If
    app.Quit
    Set app = Nothing
     
    End Function
    Ajoute la gestion du shift qui est dans la FAQ.

    Cordialement,

  10. #10
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour loufab,

    Bien noté, j'ai passé quelques temps hier soir pour arriver à la même conclusion : je procède donc en premier lieu à une copie de base puis j'exécute la transformation.

    Merci grandement pour ton aide

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

Discussions similaires

  1. [XL-2003] Création d'un fichier à partir de VBA
    Par 4Adjax dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2010, 15h41
  2. Création d'un fichier PDF en VBA en couleur
    Par Mickaël|Mitch dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/03/2010, 13h19
  3. création d'un fichier MDE
    Par bigone dans le forum Access
    Réponses: 2
    Dernier message: 29/01/2007, 17h12
  4. [VBA] Création d'un fichier MDE
    Par BaRonm3 dans le forum Access
    Réponses: 2
    Dernier message: 28/06/2006, 13h55
  5. Création fichier MDE
    Par faventin dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 15h03

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