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 04/04/2011, 19h00   #1
Invité de passage
 
Homme pascal
Webmaster
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme pascal
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Par défaut formulaire de gestion des membres

Bjr
Je m'en remet a vous car je suis déséperé, j'arrive plus.
Je faits parti d'une association et je voudrais créer un formulaire sous access de gestion des membres. J'ai reussis a créer mon formulaire mais ou ça coince c'est pour le calcul de date, je m'explique.

j'ai une date pour l'entrée d'un membre, une date pour le départ du membre (ex radiation, décès, autre...) et une date du jour.
Comment calculer la durée au sein de l'association du membre en jours/mois/annéee et si le membre est toujours présent comment calculer depuis combien de temps il fait partie de l'asso.
C'est pas évident a expliquer mais si vous voules plus de détails demandé moi.
Merci
pascal5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 22h06   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Si tu n'as pas besoin d'une précision absolue, tu peux faire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
dim nbJourcalcule as long:nombreJourCalcule = dateDiff("d",DateDebut, DateFin)
 
dim nbJourRestant as long
 
dim nbNbAnnee as long: nbAnnee = Int(nbJourCalcule/365.25)
 
nbJourRestant = nbJourCalcule - (NbAnnee * 365.25)
 
dim nbMois as long: nbMois = int(nbJourRestant/MoyenneDuNombreDeJoursParMois)
 
nbJourRestant = nbJourCalcule - (NbAnnee * 365.25) - (nbMois * MoyenneDuNombreDeJoursParMois)
 
dim nbJour=nbJourRestant
 
debug.print nbAnnee, nbSemaine, nbJour
Si tu as besoin d'une précision absolue, la méthode la plus simple est de faire une boucle qui part de la date de début jusqu'à la date de fin. Une année c'est chaque fois que tu passes sur la date anniversaire. Pour le comptage des semaines c'est chaque fois que tu passes sur le même jour et pour le nombre de jour c'est le reste.

Esquisse de solution naive à adapter à ton besoin :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
dim DateCourante as date
dim nbAnnee as long
dim nbMois as long
dim nbJour as long
 
DateCourante=DateDebut
 
dim DateDernier as date:DateDernier=DateDebut
 
'Compte les années
do while DateCourante<=DateFin
   if day(dateDebut) = day(dateCourante) and month(DateDebut)=month(DateCourante) and DateDebut<>DateCourante then
      'Dans le test gérer les mois à 28, 29 jours.
      'Part exemple le 28 février compte pour un an si la personne est entrée le 29 février d'une année bisextile.
      NbAnnee=NbAnnee+1
      DateDerniere=DateCourante
   end if
   DateCourante=DateAdd("d",1,DateCourante)
loop
 
'Compte les mois
DateCourante=DateDernier
 
do while DateCourante<=DateFin
   if day(dateDebut) = day(dateCourante) and DateDebut<>DateCourante then
      'Dans le test gérer les mois à 28, 29, 30 et 31 jours.
      'Part exemple le 28 février compte pour un mois si la personne est entrée 
      NbMois=NbMois+1
      DateDerniere=DateCourante
   end if
   DateCourante=DateAdd("d",1,DateCourante)
loop
 
'Compte les jours
DateCourante=DateDernier
 
do while DateCourante<=DateFin
      NbJour=NbJour+1
   DateCourante=DateAdd("d",1,DateCourante)
loop
 
Debug.print nbAnnee, nbMois, nbJour
__________________
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 05/04/2011, 13h08   #3
Invité de passage
 
Homme pascal
Webmaster
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme pascal
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Bjr et merci de m'avoir répondu aussi vite.

Que dois je faire avec ces lignes de code ? j'imagine que c'est du VBA.
Je suppose qu'il faut créer un module.
Désolé pour mon ignorance mais notre association existe depuis 1975 et avant tous était simplement écrit sur papier et moi je voudrais faire un formulaire avec un Bdd pour plus de facilité a gérer les membres.
Je m'attaque a un gros morceau mais j'aime les défis.
Merci encore.
pascal5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 18h48   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Oui, il s'agit de VBA. Il n'y a pas de fonction toute faite pour obtenir ce que tu veux.

Tu crée un module.

Tu y collee le code.

Mais attention, il n'est pas fonctionnel directement. Il va falloir l'adapter à tes besoins. Si tu débutes ce n'est peut-être pas la fonctionnalité la plus urgente à mettre en place.

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 07/04/2011, 12h44   #5
Invité de passage
 
Homme pascal
Webmaster
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme pascal
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Ok
Merci Marot_r. Je crois qu'un peu de lecture me fera le plus grand bien pour comprendre Access car la je patine grave.
Merci a toi
pascal5 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 05h21.


 
 
 
 
Partenaires

Hébergement Web