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 :

Executer une instruction depuis une variable chaine [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Par défaut Executer une instruction depuis une variable chaine
    Bonjour,

    Je cherche à exécuter une commande paramétrable:
    Exemple (qui ne marche pas) :
    où MaChaineDeCommande contient par exemple "DoCmd.OpenForm 'MonForm'"
    J'ai essayé avec Run, CallByName.
    Le but est de créer des formulaires en nombre.

    Merci de votre aide.

  2. #2
    jojo5650
    Invité(e)
    Par défaut
    EXECUTE tout bêtement je pense mais regarde en faisant F1


    Citation Envoyé par JYL74 Voir le message
    Bonjour,

    Je cherche à exécuter une commande paramétrable:
    Exemple (qui ne marche pas) :
    où MaChaineDeCommande contient par exemple "DoCmd.OpenForm 'MonForm'"
    J'ai essayé avec Run, CallByName.
    Le but est de créer des formulaires en nombre.

    Merci de votre aide.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Par défaut
    Merci votre réponse mais Execute ne semble pas fonctionner :
    Voici ce que ce que donne l'aide Access pour Execute :
    Méthode Execute

    La méthode Execute exécute l'action de balise active spécifiée.

    Les actions de balise active sont des processus programmés dans des balises actives qui permettent aux utilisateurs d'effectuer certaines fonctions liées à la balise active. Par exemple, pour une balise active, une action peut consister à accéder à un site Web, tandis qu'une autre action insère des informations de contact provenant de Microsoft Outlook, et qu'une autre encore affiche une carte et des instructions de conduite.

    expression.Execute()
    expression Obligatoire. Expression renvoyant un objet SmartTagAction.



    Remarques
    Appeler la méthode Execute produit une erreur d'exécution si la balise active est :

    Située dans un rapport.
    Située dans un formulaire en mode Création, en mode Tableau croisé dynamique ou en mode Graphique croisé dynamique.
    Je vais investiguer du côté des SmartTagAction.

  4. #4
    jojo5650
    Invité(e)
    Par défaut encore toutes mes excuse
    je travaillle aussi en asp et je me sert de la commande execute pour exécuter des batch.
    Toutes mes excuses

    Citation Envoyé par JYL74 Voir le message
    Merci votre réponse mais Execute ne semble pas fonctionner :
    Voici ce que ce que donne l'aide Access pour Execute :


    Je vais investiguer du côté des SmartTagAction.

  5. #5
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,

    Le but est de créer des formulaires en nombre
    Pourrais-tu nous préciser ce que tu souhaite réellement faire

    Par créer, tu veux dire:
    - "construire" entièrement un nouveau formulaire...
    Créer dynamiquement un formulaire
    - "ouvrir" plusieurs formulaires en même temps

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Par défaut
    Bonjour,

    J'ai défini un modèle de formulaire "standard" avec des boutons de commandes, afin de faire de la création de menus.

    Ce formulaire est dupliqué autant de fois que nécessaire, et toutes les caractéristiques des instances sont stockées dans une table (légende des boutons, etc, et le top serait de pouvoir stocker dans cette table la procédure à exécuter pour chaque bouton.

    A l'ouverture d'un formulaire je lit ses caractéristiques dans la table de paramétrage, et je souhaite exécuter la chaine de commande associée à chaque bouton.

    Tout le reste de mon code fonctionne, sauf cette exécution de code, exprimée en chaine.

    Chaque bouton à un code standard identique dans tous les formulaires (exemple pour bouton 1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cmd1_Click()
        On Error Resume Next
        vrep = Run(Form_Execute(1))
    End Sub
    et la procédure Form_Execute (commune à tous les formulaires) devrait exécuter la chaine d'index 1 dans la table paramètre pour le formulaire en cours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Form_Execute(index)
        Execute arProc(index)
    End Function
    arProc étant un tableau chargé à l'ouverture du formulaire par lecture de la table de paramètres. (Execute représente ce que je cherche à coder, arProc(index) valant par exemple "DoCmd.OpenForm 'MonForm2'"

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 615
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Regardes peux-être du côté de la fonction Eval, touche

    Par contre elle prend en argument une expression qui peut-être une fonction
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Par défaut
    Bonjour,

    La fonction Eval ne permet pas de faire ce que je souhaitais.
    Pour la beauté du geste, j'ai solutionné en :
    • créant un module temporaire
    • écrivant la chaine de commande dans une procédure temporaire
    • exécutant la procédure temporaire
    • supprimant le module temporaire

    le tout en utilisant VBE.
    Çà fonctionne, mais au bout du compte, çà n'est pas très stable, et je vais revenir à une gestion standard de mes formulaires.

    à tous, et encore bravo pour le forum !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. Réponses: 8
    Dernier message: 05/07/2011, 11h51
  3. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 19h27
  4. Réponses: 3
    Dernier message: 01/07/2009, 18h55
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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