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

Défis Discussion :

Arkham - 30/04/2007 - Defi Access N°1


Sujet :

Défis

  1. #1
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut Arkham - 30/04/2007 - Defi Access N°1
    Bonjour !

    Vous êtes prêts ?
    C'est J-6 maintenant, avant la publication du premier DEFI Access
    Le défieur est Arkham46, ce qui ne laisse rien présager de bon !

    A vos marques ....
    Etape 1 : lisez attentivement les règles (http://www.developpez.net/forums/d32...-defis-office/)

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Allez... C'est parti !
    Le règlement :
    http://access.developpez.com/challenge/
    Le défi :
    http://access.developpez.com/challenge/001

    Qui saura le relever ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Points : 754
    Points
    754
    Par défaut
    C'est J-6 maintenant, avant la publication du premier DEFI Access
    L'idée ne serait t'elle pas inspirée de nos défi Delphi à nous?

    Bon courage à tous les participants

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    C'est inspiré de je ne sais qui... mais cela se trame sur TOUS les forums de developpez.com !
    Il semblerait qu'on prépare un gros truc pour OFFICE au complet aussi !
    Mais... chhhttt !

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Bonsoir,

    J'ai une solution déjà fonctionnelle pas pas très élégante.

    1. Pour la contruction des contrôles, je stockes les informations dans une table alors qu'une liste sous forme de matrice devrait suffir.

    2. J'arrives pas à identifier le formulaire de destination des listes. Pour l'instant ca marche si le formulaire en mode création porte un nom fixe.

    3. Après la création des contrôles et des codes qui vont avec, la fenetre visuel basic s'ouvre pour afficher les codes

    4. (pas méchant) le contrôle de cohérence entre le type des champs qui forment les critères.

    Voila les trois problèmes que je dois résoudre et le tour est joué.

    PS : Ma solution porte sur un seul formulaire indépendant qui permet de collecter les informations sur les listes à créer.
    Amicalement

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut


    Citation Envoyé par DMboup
    1. Pour la contruction des contrôles, je stockes les informations dans une table alors qu'une liste sous forme de matrice devrait suffir.
    Effectivement, moi-même je privilégie les collections et tableaux si possible.
    La mémoire est suffisante pour stocker des données temporaires.

    Citation Envoyé par DMboup
    2. J'arrives pas à identifier le formulaire de destination des listes. Pour l'instant ca marche si le formulaire en mode création porte un nom fixe.
    A priori le formulaire de travail est le formulaire actif lors du déclenchement de l'assistant, non?

    Citation Envoyé par DMboup
    3. Après la création des contrôles et des codes qui vont avec, la fenetre visuel basic s'ouvre pour afficher les codes
    Même comportement pour moi.
    L'insertion de ligne de code provoque l'ouverture de la fenêtre VBE.
    Etant donné que ce n'est pas le cas pour les assistants standards, il doit y avoir moyen d'y remédier.
    Mais est-ce vraiment un problème??

    Citation Envoyé par DMboup
    4. (pas méchant) le contrôle de cohérence entre le type des champs qui forment les critères.
    Pa méchant c'est vrai. C'est un bonus intéressant malgré tout.

    Citation Envoyé par DMboup
    PS : Ma solution porte sur un seul formulaire indépendant qui permet de collecter les informations sur les listes à créer.
    La seule contrainte est de faire un complément.
    Pour le reste c'est comme tu veux!

    Merci de ta participation.
    Et bonne continuation!

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Arkham46
    A priori le formulaire de travail est le formulaire actif lors du déclenchement de l'assistant, non?
    Bien sur. Mais l'assistant étant aussi basé sur un formulaire, le formulaire actif n'est plus celui ouvert en mode création (qui doit recevoir les contrôles à créer).

    Citation Envoyé par Arkham46
    L'insertion de ligne de code provoque l'ouverture de la fenêtre VBE.
    Etant donné que ce n'est pas le cas pour les assistants standards, il doit y avoir moyen d'y remédier.
    Mais est-ce vraiment un problème??
    Peut être pas un problème, mais ce n'est pas très élégant pour moi.
    Amicalement

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Peut-être qu'en jouant avec la bibliothèque

    Microsoft Visual Basic for Applications Extensibility xx.xx

    Tu pourrais trouver une solution "élégante"

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Maxence HUBICHE
    Peut-être qu'en jouant avec la bibliothèque
    Microsoft Visual Basic for Applications Extensibility xx.xx
    Tu pourrais trouver une solution "élégante"
    OK je vais voir ca.

    Une question tout de même.

    Puisque après la création les listes sont disponibles en modification, donc déplacable à volonté, est-il nécessaire de définir l'emplacement (Entête, Détail ou Pied de formulaire) de destination au niveau du formulaire?
    Amicalement

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par Maxence HUBICHE
    Peut-être qu'en jouant avec la bibliothèque

    Microsoft Visual Basic for Applications Extensibility xx.xx

    Tu pourrais trouver une solution "élégante"
    Bonne idée, c'est ce que j'ai fais.
    Pour l'instant la fenêtre IDE s'ouvre mais au moins elle reste en arrière-plan.

    Citation Envoyé par DMboup
    Bien sur. Mais l'assistant étant aussi basé sur un formulaire, le formulaire actif n'est plus celui ouvert en mode création (qui doit recevoir
    les contrôles à créer).
    Tu stockes le nom du formulaire actif avant d'ouvrir celui de l'assistant?
    Pas très élégant? Mais j'ai pas trouvé mieux...

    Citation Envoyé par DMboup
    Puisque après la création les listes sont disponibles en modification, donc déplacable à volonté, est-il nécessaire de définir l'emplacement (Entête, Détail ou Pied de formulaire) de destination au niveau du formulaire?
    Là je n'ai pas ce souci je crois.
    Le contrôle est créé sur la section active puis l'assistant est appelé.
    En tout cas j'ai remarqué ça sur un assistant création de contrôle.
    Mais tu parles de création de plusieurs listes, peut-être as-tu opté pour un complément de menu??

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Arkham46
    Mais tu parles de création de plusieurs listes, peut-être as-tu opté pour un complément de menu??
    Je crois avoir bien lu quand même. http://access.developpez.com/challenge/001/
    II. Description du défi
    Il s'agit de développer un complément pour Access - 2000 et au-dessus - qui permette de facilement implémenter des listes dont les données se mettent à jour en cascade.
    Il s'agit bien de plusieurs listes liées.
    Exemple
    1. Liste des niveaux d'études dans une école
    2. Liste des classes du niveau choisi
    3. Liste des élèves de la classe choisie.

    J'espères n'avoir pas fais de hors sujet ?
    Amicalement

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par DMboup
    Je crois avoir bien lu quand même. http://access.developpez.com/challenge/001/


    Il s'agit bien de plusieurs listes liées.
    Exemple
    1. Liste des niveaux d'études dans une école
    2. Liste des classes du niveau choisi
    3. Liste des élèves de la classe choisie.

    J'espères n'avoir pas fait de hors sujet ?
    Non tu n'es pas hors sujet.

    Le but est simplement de répondre à un besoin fréquent : lier des zones de listes en cascades.
    Effectivement l'objectif est de restreindre la source de données d'une liste en fonction du choix fait dans la liste précédente.

    J'ai choisi d'utiliser un assistant lors de la création/modification de chaque liste. Donc je n'ai pas à créer de contrôles, mais l'assistant se déclenche une fois pour chaque liste liée. Si je veux lier 3 listes en cascade j'aurai donc à utiliser 2 fois l'assistant.
    C'est mon choix, ce n'est pas forcément le meilleur.

    De ton côté tu sembles avoir choisi de mettre en oeuvre un formulaire qui va créer les trois listes (ou plus?) en une seule fois.
    Je n'y vois pas d'inconvénient, c'est intéressant aussi.

    Le sujet n'était pas très directif, c'est fait exprès
    A chacun de programmer le complément à sa sauce, en gardant en tête le sujet quand même.
    Si les compléments sont très différents les uns des autres c'est normal et c'est tant mieux.

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Arkham46
    Non tu n'es pas hors sujet.
    Tant mieux.

    Citation Envoyé par Arkham46
    De ton côté tu sembles avoir choisi de mettre en oeuvre un formulaire qui va créer les trois listes (ou plus?) en une seule fois.
    C'est bien ce que j'ai fais.
    Amicalement

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Par rapport à mes trois questions, j'arrives à identifier le formulaire de destination (celui qui est ouvert en mode création) par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For Each strFormName In Application.CurrentProject.AllForms
        If SysCmd(acSysCmdGetObjectState, acForm, strFormName.Name) <> conObjStateClosed Then
            If Forms(strFormName.Name).CurrentView = conDesignView Then
                NForm = strFormName.Name
                Exit For
            End If
        End If
    Next
    Le seul hic c'est qu'il faut que le formulaire soit déjà enregistré. Donc en faisant nouveau formulaire sans avoir enregistré, ca ne marche plus.

    Je suis devant le mur de l'élégance.
    Amicalement

  15. #15
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par Arkham46
    Tu stockes le nom du formulaire actif avant d'ouvrir celui de l'assistant?
    Pas très élégant? Mais j'ai pas trouvé mieux...
    Euh...
    Quelques idées :
    CodeProject vs CurrentProject ...
    CodeContextobject ...
    Propriétés du formulaire assistant défini par l'appel de la fonction
    etc.

  16. #16
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par Maxence HUBICHE
    Propriétés du formulaire assistant défini par l'appel de la fonction
    Oui mais j'ouvre mon formulaire en mode dialogue, donc après je ne peux pas définir ses propriétés
    Il reste le paramètre OpenArgs...

    DMboup tu as la collection Forms qui fonctionne avec les objets ouverts non sauvegardés, mais si tu as plusieurs formulaires ouverts en mode création??

  17. #17
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Il y a un olibrius qui s'appelle Maxence Hubiche, qui a écrit un tutoriel sur la classe formulaire...
    Euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim x as form_frmAssistant
    set x=new form_frmAssistant
    x.MaPropriété = MaValeur
    x.visible=true

  18. #18
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par Maxence HUBICHE
    Il y a un olibrius qui s'appelle Maxence Hubiche, qui a écrit un tutoriel sur la classe formulaire...
    Euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim x as form_frmAssistant
    set x=new form_frmAssistant
    x.MaPropriété = MaValeur
    x.visible=true
    ça je connais bien.
    mais ça n'a pas le même effet (interruption du code) qu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "MonForm", , , , , acDialog

  19. #19
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Arkham46
    DMboup tu as la collection Forms qui fonctionne avec les objets ouverts non sauvegardés,
    Oui. c'est ce qu'il faut et ca marche très bien.

    Citation Envoyé par Arkham46
    mais si tu as plusieurs formulaires ouverts en mode création??
    J'avais pas pris en compte cette possibilité. En attendant le probable défi d'intégration de zone de liste ou de case à cocher dans un message box, on peut bien arrêter le processus et demander à l'utilisateur de choisir parmi les formulaires ouvert en création celui devant recevoir les listes à créer.

    Quand pensez vous?
    Amicalement

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    J'ai maintenant une solution fonctionnelle basée sur le formulaire dont l'image est présentée ci-dessous.
    Il ne me reste qu'à remplacer ma table temporaire par un tableau (ou une liste) et à faire le complément.
    Amicalement

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Compatibilité VBA Access 2007 et Access 2002
    Par Lord Nelson dans le forum VBA Access
    Réponses: 0
    Dernier message: 16/03/2008, 02h47
  2. [Access 2007]Application Access 2002 ne fonctionne pas
    Par napster dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/02/2008, 17h59
  3. [2007] Formulaire Access via SharePoint
    Par Plug dans le forum IHM
    Réponses: 0
    Dernier message: 30/10/2007, 10h38
  4. Lire une base de données access 2007 avec access 2003
    Par gblanchard dans le forum Runtime
    Réponses: 6
    Dernier message: 08/05/2007, 03h59

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