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 :

Outil pour modifier les propriétés d'objets en traitements par lots [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Outil pour modifier les propriétés d'objets en traitements par lots
    Bonjour à tous!

    Je viens vers vous pour aborder une question de méthode.

    Je suis en train d'écrire un petit soft qui:

    1/ recense les objets d'une base:
    . Tables
    . Requêtes
    . Formulaires
    . Etats
    2/ Enregistre leurs propriétés dans une table avec une valeur d'origine et une valeur de modification.
    3/ Met à jour les valeurs en mode traitement par lots des valeurs de propriétés par celles modifiées. Exemple: mettre à jour les couleurs de fond de toutes les étiquettes sélectionnées de tous les formulaires sélectionnés de fond transparent à bleu ciel (backStyle et backColor).


    Pour les tables et requêtes, no problemo, il suffit de parcourir TableDefs et QueryDefs.

    Çà se complique pour les formulaires et états: je n'ai pas trouvé d'autre solution que de d'ouvrir les objets de MSysObjects avec un type = -32768 (form) ou Type=-32764 (report) en mode acDesign et hidden, de parcourir leur collection de contrôles et pour chaque contrôle de parcourir sa collection de properties pour les enregistrer.

    Çà tourne! Mais c'est Hyyypeeeer long! (8H pour les 160 formulaires d'une appli!)

    J'ai un peu optimisé le bazar en excluant certains types de contrôles et de propriétés, mais çà reste très très long à l'exécution.

    J'imagine qu'il doit y avoir une autre méthode: auriez-vous une idée ? (mes pauvres neurones sont à bout !)

    Merci d'avance !
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  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 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    8h en effet c'est (trop) long.

    Forms et Reports ont leur collection.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentproject.AllForms
    Voici un petit code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function editfrm()
    Dim frm As Form
    Dim frmEdit As Form
    DoCmd.Echo False
    For Each frm In CurrentProject.AllForms
        DoCmd.OpenForm frm.Name, acDesign
        Set frmEdit = Forms(frm.Name)
        'traitement
        Set frmEdit = Nothing
        DoCmd.Close acForm, frm.Name 'sauve/sauve pas ?
    Next
    DoCmd.Echo True
    End Function
    cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Outil pour modifier les propriétés d'objets en traitements par lots
    Merci loufab pour ta réponse,

    En effet, j'ai essayé également, ce qui prend du temps c'est l'ouverture en mode acdesign
    + parcourir les propriétés de forms ou reports
    + enregistrement avec un SQL dans la table qui va bien
    + parcourir la collection de contrôles
    + la collection de propriétés de chacun d'entre eux
    + enregistrement avec un SQL dans la table qui va bien.
    + fermeture du form ou report

    Dans un souci de performance, j'ai été obligé de créer des tables avec :
    . les propriétés de formulaires et un booléen pour sélectionner les propriétés les + pertinentes
    . idem pour les propriétés de contrôles, par type de contrôle

    Dans la mesure où Access est capable de fournir une documentation de base de données (ils filtrent, eux aussi les objets) qui peut être longue à produire également, je me demandais s'il existait une méthode plus radicale.
    Peut-être avec des tables système ?
    Apparemment, non

    J'espère avoir des réponses plus encourageantes!

    Merci encore!
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  4. #4
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour.

    @ Ric500 , je ne comprends pas trop l'utilité de stocker toutes les propriétés de tous les objets, dans des tables. De plus ,est-ce que ces tables seront bien toujours à jour ?
    Question rapidité , je pense que, après export au format texte des objets (tables, formulaires,états ...) ,il sera plus rapide de lire dans le fichier texte .
    Par contre la difficulté (pour moi) , est de bien écrire le script !

    Je pense (c'est meme évident) qu'Access stocke des infos quelque part.
    example: une appli format 2007 , utilisée sur A2010, j'ai 7 mfc sur un controle, sur A2007, je ne peux en utiliser que3 , mais les 4 dernières n'ont pas disparues pour autant !

    Je pense qu'un "petit" tuto sur les tables systèmes, serait utile .
    Cdlt

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Outil pour modifier les propriétés d'objets en traitements par lots
    Bonjour Thierry,

    je ne comprends pas trop l'utilité de stocker toutes les propriétés de tous les objets, dans des tables. De plus ,est-ce que ces tables seront bien toujours à jour ?
    Imagine que tu aies écrit une suite logicielle (compta, gestion commerciale, contacts...) et que tu veuilles changer ou homogénéiser la charte graphique, par exemple...

    Question rapidité , je pense que, après export au format texte des objets (tables, formulaires,états ...) ,il sera plus rapide de lire dans le fichier texte .
    Là tu m'intéresses fortement! Je ne savais même pas que c'était possible (à condition que ce fichier texte stocke tout ce dont j'ai besoin).

    Quelqu'un sait où trouver cette option?
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Ces fichiers textes stockent tout et ils peuvent être réimporté.

    Les commandes cachées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    application.saveastext
     
     
     
    application.loadfromtext
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Outil pour modifier les propriétés d'objets en traitements par lots
    Merci,

    Je vais regarder çà de près
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  8. #8
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Regarde dans ma contribution "DependancesPlusV2" (juillet 2017)
    A+

  9. #9
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Outil pour modifier les propriétés d'objets en traitements par lots
    Merci Thierry,

    Je regarde çà rapidement.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

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

Discussions similaires

  1. [LibreOffice][Tableur] [BASIC] Macro pour modifier les propriétés de contrôle d'un formulaire
    Par DensGP33 dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 12/06/2019, 09h13
  2. [XL-2010] Pour modifier les propriétés d'un contrôle ActiveX
    Par goofyto8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2015, 20h24
  3. Réponses: 1
    Dernier message: 19/10/2011, 11h16
  4. Réponses: 4
    Dernier message: 11/05/2009, 14h48

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