Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Défis
Défis Ce forum est celui des défis et challenges Office. Prêts à relever le gant ? C'est parti !
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/04/2007, 23h02   #1
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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/)
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 08h21   #2
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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 ?
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 19h36   #3
Fabrice ROUXEL 1
Membre chevronné
 
Inscription : février 2006
Messages : 625
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France

Informations forums :
Inscription : février 2006
Messages : 625
Points : 705
Points : 705
Citation:
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
Fabrice ROUXEL 1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 23h37   #4
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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 !
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2007, 01h23   #5
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 09h56   #6
Arkham46
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 443
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 443
Points : 8 146
Points : 8 146


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!
Arkham46 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 12h24   #7
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 12h28   #8
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à 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"
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 13h02   #9
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 13h14   #10
Arkham46
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 443
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 443
Points : 8 146
Points : 8 146
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??
Arkham46 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 13h21   #11
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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/
Citation:
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 13h53   #12
Arkham46
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 443
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 443
Points : 8 146
Points : 8 146
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.
Arkham46 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 14h10   #13
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 18h10   #14
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
Par rapport à mes trois questions, j'arrives à identifier le formulaire de destination (celui qui est ouvert en mode création) par ce code
Code :
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 18h19   #15
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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.
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 20h31   #16
Arkham46
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 443
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 443
Points : 8 146
Points : 8 146
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??
Arkham46 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 23h05   #17
Maxence HUBICHE
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Développeur SQLServer/Access
Inscription : juin 2002
Messages : 3 768
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 43
Localisation : France, Val d'Oise (Île de France)

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

Informations forums :
Inscription : juin 2002
Messages : 3 768
Points : 8 720
Points : 8 720
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Il y a un olibrius qui s'appelle Maxence Hubiche, qui a écrit un tutoriel sur la classe formulaire...
Euh...
Code :
1
2
3
4
5
 
Dim x as form_frmAssistant
set x=new form_frmAssistant
x.MaPropriété = MaValeur
x.visible=true
__________________
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 12h03   #18
Arkham46
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 443
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 443
Points : 8 146
Points : 8 146
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 :
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 :
DoCmd.OpenForm "MonForm", , , , , acDialog
Arkham46 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 12h39   #19
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 13h50   #20
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h25.


 
 
 
 
Partenaires

Hébergement Web