Les meilleurs développeurs Visual Basic freelances sont sur Codeur.com

Formulaire générique de requetage sous Access 2013

 Terminé·30 à 300 €·1 offre·1244 vues


Nous recherchons un codeur pour développer sous forme d'un formulaire Access 2013 (vba possible) un requeteur générique utilisable 100% au clavier, afin de remplacer une appli en mode DOS, tout en gardant la même logique de saisie.

Ce form contient les éléments / fonctions suivantes :
- une liste de sélection "Critères de recherche" qui contient la liste des champs de la source du form (cette source est le nom d'une table ou d'une requête déjà faite, saisie en mode création)
- une zone de commande "d'opérateurs de comparaison" qui contient les opérations de filtre possible (=, >, <, compris entre)
- une zone de commande "d'opérateurs booléen" qui contient les opérations de combinaison possibles entre filtres (Exécution, ET, OU, SAUF)
- une zone d'information qui contient la question / requête que l'on construit
- une liste de présentation / historique des étapes de recherche (Etape x, requête demandée, nb d'enregistrements obtenus)
- un menu d'actions (Etape existante, Nouvelle étape, Afficher les résultats, Confirmer la sélection)

Scénario d'utilisation :
- La liste des critères de recherche est activée par défaut. Avec les flèches du clavier je parcours la liste jusqu'au champ qui m'intéresse (par exemple, SEXE). Je tape Entrée pour sélectionner ce champ qui s'inscrit dans la zone d'information. La zone des opérateurs de comparaison est activée, et le premier est sélectionné par défaut (=). Je tape Entrée et il s'inscrit dans la zone d'information (SEXE =). Je saisis mon critère (pex F) qui s'ajoute à la zone d'information (SEXE = F). La zone des opérateurs booléen est alors activée.
- Je peux soit faire Entrée pour lancer l'Exécution de ce filtre (select * from ma source where SEXE = F), ajouter cette condition dans ma liste de présentation des étapes, et obtenir le nombre d'enregistrements concernés,
soit utiliser les flèches du clavier pour sélectionner un opérateur et ajouter une condition (pex ET).
- Si j'ajoute une condition (pex ET), alors la liste des critères de recherche est de nouveau active à la sélection d'un nouveau critère, et le cycle de saisie d'une condition se poursuit comme précédemment (pex ET AGE COMPRIS_ENTRE 30,35).
- Il est donc possible de saisir plusieurs conditions à la suite, articulées autour d'un opérateur booléen (pex SEXE = F ET AGE COMPRIS_ENTRE 30,35 SAUF CSP = E). Etant donné que la notion de groupement est absente, car on ne veut pas gérer les parenthèses, on ne va pas pouvoir avoir ET et OU dans la même condition ; en revanche on va le gérer plus tard en donnant la possibilité de "grouper les étapes".
- Si j'exécute la saisie précédente, j'obtiens en historique Etape 1 = select * from ma source where SEXE = F ET AGE COMPRIS_ENTRE 30,35 SAUF CSP = E et le résultat de la requête.

- A partir de ce moment, j'ai 2 options :
-- option 1 : filtrer davantage
Dans le menu d'action je sélectionne "Etape existante", la zone de présentation ajoute le terme ETAPE que je précise en tapant 1, ce qui active la zone des opérateurs booléens. Je sélectionne un nouveau (pex ET), ce qui active la sélection d'un nouveau critère et ainsi de suite...je vais arriver pex à la condition ETAPE 1 ET CODEPOSTAL COMPRIS_ENTRE 92000,95999.
L'exécution va donc me donner
Etape 1 = select * from ma source where SEXE = F ET AGE COMPRIS_ENTRE 30,35 SAUF CSP = E
Etape 2 = select * from Etape 1 where CODEPOSTAL COMPRIS_ENTRE 92000,95999

-- option 2 : créer une autre sélection d'enregistrement (en vue pex de l'ajouter à l'étape 2 plus tard)
Dans le menu d'action je sélectionne "Nouvelle étape" et la liste des critères de recherche est de nouveau active à la sélection d'un nouveau critère, et le cycle de saisie d'une condition se poursuit comme précédemment (pex SEXE = H ET AGE COMPRIS_ENTRE 40,50 SAUF CSP E ET CODEPOSTAL COMPRIS_ENTRE 92000,95999)
L'exécution va donc me donner
Etape 3 = select * from ma source where SEXE = H ET AGE COMPRIS_ENTRE 40,50 SAUF CSP E ET CODEPOSTAL COMPRIS_ENTRE 92000,95999
A ce moment j'ai donc 2 ensembles d'enregistrements filtrés mais disjoints de ma source d'origine.
- Si je veux pouvoir m'en servir comme d'un seul groupe, dans le menu action je sélectionne "Etape existante" > ETAPE et j'ajoute 2 > ETAPE 2, dans la zone des opérateurs booléens activée automatiquement, je sélectionne "OU", puis ajoute l'autre étape (pour faire une Union des 2 sous ensembles)
Etape 4 = ETAPE 2 OU ETAPE 3
A chaque étape, je dois pouvoir faire référence à une étape précédente (via le menu "Etape existante"), en filtre ou en union.

Les opérateurs
(la source de données ne contient que du numérique ou du texte)
= et SAUF sont valides pour tout type de champ
= pour les textes doit être vu comme un LIKE et peut avoir des caractères génériques de remplacement (pex RUE = *aristide*briand* voudra dire RUE LIKE *aristide*briand*)
idem pour SAUF (pex CSP SAUF B* devra éliminer les csp de type B, B+ et B-; en revanche CSP SAUF B n'éliminera que les csp de type B)
COMPRIS_ENTRE, > et < ne sont valides que pour les champs numériques

La navigation / raccourci
Toutes les zones doivent être accessibles via le clavier et plus spécifiquement
- via les flèches pour se déplacer dans la zone de sélection / commande
- via Tab pour passer d'une zone à une autre
- via Entrée pour valider une sélection

Le menu d'actions
- Etape existante : permet d'afficher le mot clé ETAPE dans la zone d'information, afin de partir d'une étape pour construire la condition en cours (select * from Etape x where ...)
- Nouvelle étape : permet de construire une nouvelle condition à partir de la source (select * from ma source where ...)
- Afficher le résultat courant : permet d'accéder aux éléments résultants de la requête courante (si la liste historique est active, avec une étape sélectionnée, c'est son résultat qui est affiché : une feuille de données avec les enregistrements remontés par la requête courante)
- Afficher le résultat final : donne accès aux éléments de la dernière requête
- Confirmer la sélection : permettra de mettre de côté les ID des enregistrements remontés afin de passer au traitement suivant.

Conditions du projet
- nous avons des copies d'écran et des vidéos d'usage de l'appli en mode DOS que l'on pourra communiquer
- nous voulons un fonctionnement proche de l'identique et pas une reconception : on veut du code, pas des spec proposant un nouveau parcours...
- nous aimerions une livraison sous 15 jours
- un paiement intermédiaire en fonction de l'avancement est possible
- il n'y a pas d'exclusivité sur ce code ; vous devez juste vous engagez à le rendre public (style licence MIT) si vou souhaitez le réutiliser pour un autre usage / client

polybase_-_ecran_search.png

Budget indicatif : 30 à 300 €

Publication : 18 avril 2015 à 13h35

Profils recherchés : Développeur VBA freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

1 freelance a répondu à ce projet

1 proposition de devis en moins de 2h

Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients

Votre navigateur Web n’est plus à jour. Il ne permet pas d’afficher correctement le site Codeur.com.
Nous vous invitons à mettre à jour votre navigateur ou à utiliser un autre navigateur plus récent.