Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 13h46   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Par défaut Sous Formulaire en fonction de date

Bonjour,

J'ai une question sur Access et la conception de formulaire, mais ne sachant pas comment formuler ça je n'arrive pas à effectuer les recherches nécessaires sur mon ami Google ...

J'ai 3 tables différentes : Prestataire, Commande, Janvier (une pour chaque mois de l'année) et un formulaire permettant de remplir tout ça.

Mon formulaire est en 3 parties
Prestataire : je sélectionne la personne (fais référence à la table prestataire)
Commande : je choisit quelle commande pour cette personne (je peux avoir plusieurs commandes pour une même personne) (fais référence à la table Commande)
Mois : là j'ai le mois de janvier que je peux remplir. (fais référence à la table du mois)

Le truc c'est que je souhaiterais faire un système de filtre automatique, dans la partie commande j'ai le numéro de la commande ainsi que les dates de début et de fin.
Je souhaiterais qu'il m'affiche les mois en fonction de ces dates.

Par exemple si la date est entre le 01/03/11 et le 31/07/11 alors il m'affiche les formulaires pour Mars, Avril, Mai, Juin et Juillet...

Je ne parviens pas à le faire quelqu'un pourrait m'aider ? (ce serait génial ^^)

Cordialement,

Moi ^^
Sph1nxXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 15h16   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Tu ne devrais pas avoir 12 tables mais une seule avec l'info de date et filter tes données pour n'afficher que les données du mois qui t'interesse.

TaTableMensuelle
ClefTableMensuelle
DateInfo
Autres données

Requête :

Code sql :
SELECT [TaTableMensuelle].* FROM [TaTableMensuelle] WHERE [TaTableMensuelle].[DateInfo] BETWEEN [Forms]![TonForm]![DateDebut] AND [Forms]![TonForm]![DateFin];

Cette requête va sélectionner tous les enregistrements de [TaTableMensuelle] dont la date est comprise entre la date de début et la date de fin dans le formulaire [TonForm].

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 10h12   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Merci pour la réponse,

Effectivement ça paraît plus logique de faire comme ça, mais le truc c'est que je reçois des rapports d'activités et je fais un copier coller, donc j'ai reproduis le même format pour, à terme, faire une simple liaison.

Et le fait de trier en fonction des dates me permettra de remplir dans la bonne commande directement...

Mais dans la logique c'est vrai qu'on prends access pour tout mettre dans une seule et même table les infos de ce type et d'ensuite trier et filtrer par le biais des requêtes...

Je vais quand même tenté comme ça on ne sait jamais
Sph1nxXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 11h34   #4
Invité de passage
 
Homme
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Citation:
Envoyé par marot_r Voir le message
Tu ne devrais pas avoir 12 tables mais une seule avec l'info de date et filter tes données pour n'afficher que les données du mois qui t'interesse.

TaTableMensuelle
ClefTableMensuelle
DateInfo
Autres données

Requête :

Code sql :
SELECT [TaTableMensuelle].* FROM [TaTableMensuelle] WHERE [TaTableMensuelle].[DateInfo] BETWEEN [Forms]![TonForm]![DateDebut] AND [Forms]![TonForm]![DateFin];

Cette requête va sélectionner tous les enregistrements de [TaTableMensuelle] dont la date est comprise entre la date de début et la date de fin dans le formulaire [TonForm].

A+
En fin de compte ce n'est pas tout à fait l'usage que je souhaites faire.

Je vais donner plus de détails :
J'ai une commande (disons commande 2010) et un poste définit par des dates
puis un autre poste pour la même commande

Par exemple commande 1010 poste 1 allant du 01/01/11 au 31/01/11
et une autre commande 1010 poste 2 du 01/02/11 au 28/02/11

Et quand je saisie je souhaiterais que tout se fasse automatiquement.
Soit en faisant une seule table pour laquelle je met tout bout à bout ( comme dit au dessus) et qu'il sache lui même en fonction de la date de quel poste il s'agit, soit faire une table pour chaque mois, et qu'il n'affiche que les tables concernés par les dates dans le formulaire.

Je ne sais pas si je m'exprime bien
Sph1nxXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h24   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Citation:
Par exemple commande 1010 poste 1 allant du 01/01/11 au 31/01/11
et une autre commande 1010 poste 2 du 01/02/11 au 28/02/11
As-tu besoin de voir les 2 postes siimultanéments ?

Si tu vas avec une seule table (ce que je recommande fortement puisque tu n'auras que des filtres à faire, pas à changer dynamiquement tes sources de données) la structure suivante devrait répondre à ton besoin :

TaTableMensuelle
ClefTableMensuelle
DateInfo
ClefPoste
Autres données

Code sql :
SELECT [TaTableMensuelle].* FROM [TaTableMensuelle] WHERE [TaTableMensuelle].[DateInfo] BETWEEN [Forms]![TonForm]![DateDebut] AND [Forms]![TonForm]![DateFin] AND [ClefCode]=[Forms]![TonForm]![ClefCode];

Va afficher toutes les info pour les dates comprises entre Date de début et date de fin dont le poste est égale à ClefPoste.

Si tu veux travailler avec plusieurs tables (ce qui à mon avis complique sérieusement l'architecture de ta BD), il faut que tu change la propriété DataSource de ton objet formulaire. Ceci se fait par VBA.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h32   #6
Invité de passage
 
Homme
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Je suis obligé d'avoir les postes, car il me permettent de savoir si tout a été fait correctement.
Il se peut qu'il y ai trop par poste, dans ce cas je le vois, si jamais je ne fais qu'un filtre par date je ne peux pas voir, de même lorsque je saisie dans les formulaires, je ne précise pas le poste et donc les données contenu dans les mois sont éparpillés
Sph1nxXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h50   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Citation:
je ne précise pas le poste
Comment le système peut-il connaître le poste ?

Citation:
donc les données contenu dans les mois sont éparpillés
Peux-tu trier par poste ?

Peut-être pourrais-tu poster ton modèle de relation, cela aiderai à fixer les idées.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 16h19   #8
Invité de passage
 
Homme
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Voilà le Schéma
Bon j'ia fait le petit con inutile j'ai caché certaines choses...
J'ai donc mis tout les mois dans la même table comme dit dessus.
Et le truc c'est que je voudrais faire un formulaire qui me permet de mettre à jour les mois.

1 . Je choisis le Nom du prestataire
2 . Il me donne les différents commandes et postes pour cette personne
3 . En fonction du poste que je choisis il me présente les mois possible à remplir.

Si le poste en question ne va pas au delà de Mars, alors je ne voudrais avoir que Janvier, Février et Mars à remplir. Qu'il sélectionne les sous formulaires automatiquement.
Images attachées
Type de fichier : jpg Relation.JPG (88,0 Ko, 6 affichages)
Sph1nxXx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web