Date dans boucle

chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009 - 6 déc. 2007 à 10:32
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 2 janv. 2008 à 10:07
bonjour
je fais actuellement dans access un petit travail :
j'ai une formulaire qui est basé sur une table.
quand je clique sur le bouton on demande la date
j'entre le premier jour du mois
on demande combien d'heures j'ai travaillé pour la mission 1
j'entre les heures par jour pour la mission 1
on demande combien d'heuires j'ai travaillé pour la mission 2
j'entre les heures pour la mission 2
on demande pour la mission 3
j'entre les heures pour la mission 3
A l'issue de ces entrées je dois avoir sur une autre table qui se creée à partir d'une requête :
le mois concerné
le nombre d'heures total
le nombre de jours de missions
le nombre de samedis travaillés
le nombre d'heures de travail du samedi
le nombre de mission 1
le nombre d'heures de la mission 1
le nombre de mission 2
le nombre d'heures de la mission 2
le nombre de mission 3
le nombre d'heures de la mission 3

j'ai à peu près réussi à faire tant bien que mal, avec beaucoup d'erreurs cet exercice.
le priblème que je rencontre actuellement est que je tente par une requête de mettre ces élements sur une requête et refaire une table. et cela est faux.
je voudrais avoir des conseils à ce sujet : la manière de procéder. poru avoir tout sur la même table avec le minimum de requête...

le deuxième problème est un problème de boucles.
pour entrer la date, j'ai entré la fonction datevalue
datevalue = 01/10/2007
par exemple

et j'ai fait une boucle :
for i = 1 to 29
datevalue + 1
pour faire 30 enregistrements.
le problème est qu'il y a des jours de 31 et des jours de 30 et le mois de févirer.
je tente d'utiliser la fonction case mais cela ne fonctionne pas. et je voudrais savoir comment je peux faire pour avoir le nombre de jorurs exacts.

pour faire cet exercice j'ai utilisé des requetes que j'ai faites appelé par une macro dans visual basic. est ce que c'est la bonne méthode ?

merci beaucoup de votre aide.

14 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 déc. 2007 à 12:09
Bonjour ,

Pour ta base de données pourrais tu donné la structure de tes table (ça serais plus facile de te donné une requête)

Pour ajouté des jours à une date utilise plutôt 'DateAdd' comme ça :
TaDate = DateAdd("d", 1, TaDate)

Heeee par contre là je comprend pas tout :
"le priblème que je rencontre actuellement est que je tente par une
requête de mettre ces élements sur une requête et refaire une table. et
cela est faux."

Tu veut extraire toute tes données avec une seul requête c'est bien ça ???

Amicalement
Pensez "Réponse acceptée"
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
6 déc. 2007 à 12:58
 Bonjour à tous,

Pour le dernier jour d'un mois:

mois = 2
MsgBox DateSerial(2008,mois+1,1)-1,,"retourne 29/02/2008"

jean-marc
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 déc. 2007 à 14:50
Heeeee, si tu veut que je te donne une requête, post la structure de ta base avent 17H00. Je n'aurais sans doute pas le temps de te répondre demain (dans ce cas il faudras attendre au moins lundi, ou que quelqu'un d'autre te réponde)

Pour les date c'est bon ?

A +
Amicalement
Pensez "Réponse acceptée"
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
6 déc. 2007 à 15:48
Bonjour
ma table est composée comme cela :
un champs temps, où la date du jour s'affiche
un champs heure en numerique. je mets les heures en centieme c'est plus facile
un champs mission, où est précisé mission 1 mission 2 ou mission 3 en texte
un champs mois, qui affiche seulement le mois en cours en date mais seulement le mois
un champs reference numero automaituqe cle mais je ne m'en sers pas.

j'ai donc une premiere requete qui est chargée de mettre les heures à jour. comme je les mets en centieme : pour mettre deux heures et demi : je tape 250, et la requete pultiplie 250 par 0.01 pour donner 2.50

j'ai deux autres requetes qui sont directement concernées par cette table : la requete effacer les dimanches. par la requete effacement, tous les enregistgrements dont le jour est dimanche sont enlevés
pour les samedis même chose je ne travaille que pour la mission 3 donc tous les enregistrements dont la mission n'est pas 3 pour le samedi sont supprmés.

et à partir de cette requete, je crée une autre table de base...

merci de vous occuper de mon probleme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 déc. 2007 à 17:28
En faite j'ai rien compris à ce que tu veut.
Une requête qui (crée et) alimente une table ?

Je prendrais un peut de temps quand même demain. J'ai mit plus de temps que ce que je pensais à faire ce que j'ai en cours.
Si j'ai bien compris ta table ressemble à ça (à moins que ce ne soit ton objectif ? ) :
-----------------------------------------------------------------------------------------------------
temps as date | heure as numérique | mission as texte | mois as numérique | reference as numéro auto |
-----------------------------------------------------------------------------------------------------
Et tu développe en VBA access ?

Si c'est une requête qui aliment cette table que tu attend c'est :

INSERT INTO NomDeTaTable (temps,heure,mission,mois) VALUES (Date*,NombreHeure,'Le texte entre simple appostrof (si un appostrof se trouve dans le texte il faut le doublé)',NumeroDeMois)
http://sql.developpez.com/
Référence étant en numéro auto le SGBD (system de gestion de base de données ici Access) s'en charge.

Pour le SQL perso je me réfère en général à deux sites "SQL par
l'exemple" peut complet mais TRES simple et "SQL de A à Z" TRES complet
(peut être même trop dans ton cas).

ici : http://www.toutestfacile.com/sql/cours/printables/%5BSQLFacile.com%5Dexample.php

et ici : http://sql.developpez.com/

A+ (Demain ?)

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 déc. 2007 à 17:34
Heee oups un oublie  :
Date* : Vérifie le format qu'access attend pour les dates généralement c'est "yyyy-mm-dd" (à moins que ce ne soit des '/' j'ai un doute vérifie) mais ça peut changé. Tu formate ta date avec la fonction Format. Comme ça :
ChAInsDsReq = Format(TaDate, "yyyy-mm-dd")

ChAInsDsReq : Chaine à insérer dans ta requête (la date formaté quoi)

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 déc. 2007 à 17:37
Et au faite pour l'ajout de jours dans tes dates ça c'est bon maintenant (entre ce que je t'ai donnée et ce que t'a donnée 'chaudier37' ) ?

Amicalement
Pensez "Réponse acceptée"
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
6 déc. 2007 à 23:07
Bonjour,
merci, cela m'aide un peu, mais plus précisement : j'ai mon forumulaire. l'inputbox me demande d'entrer la date du premier du mois : j'entre 01/03/2007 ou 01/02/2007 et il faudrait que le programme calcule automatiquement le nombre d jour. là il compte du 01 au 31 et dans l'autre cas du 01 02 au 28 02. c'est cela qui me pose probleme...
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
7 déc. 2007 à 06:33
 Bonjour à tous,

Utilise une boucle Do While ... Loop ,et non For ... Next.

question = InputBox("MaDate",,DateSerial(Year(Date),1,1))
mois = Month(question)
result = "Enumération jours du mois de " _
         & MonthName(mois) &Space(1) _
         & Year(question)

Do While Month(question) = mois
   result = result &vbCr& question
   question = DateAdd("d",1,question)
Loop
MsgBox result,,"result"

jean-marc
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
7 déc. 2007 à 09:56
Il existe une fonction qui se nome DateDiff (et c'est vachement bien , ça prend même en compte les années bissextiles). Dans ton cas il faut s'en servir comme ça :

LngNbJour = DateDiff("d", DateDeDebut, DateDeFin)

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
7 déc. 2007 à 11:10
Coucou,
une petite info en +
J'ai fait une recherche dans google à 'vba fonction date'. Le troisième site sur la liste retournée est http://www.commentcamarche.net/vbscript/vbs-fonctions-date.php3. Il y à une liste des fonctions sur date (je pense qu'il en manque mais les principale me semble présentes).

Voili voilou, avec ça tu ne devrais plus avoir de problème avec les dates.

A+
Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
11 déc. 2007 à 15:24
Heeeeeee tu en est où? Ton problème est résolut (dans ce cas Pensez "Réponse acceptée) ?
Merci.
Amicalement
Pensez "Réponse acceptée"
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
29 déc. 2007 à 18:11
Bonjour,
J'ai un problème dans vb excel.
j'ai un tableau dans une feuille excel qui demande des additions. mais ces additions ne sont pas faites tout le temps à la même heuteur. la formule que je cherche à faire pour ceci est la suivante
somme de
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
2 janv. 2008 à 10:07
Oui ???
Par contre une question par topic svp (à moins qu'elle ne soit étroitement lié bien sure). (Cela permet une recherche plus simple par la suite si le même problème est rencontré par d'autre, bien sur il faut également un intitulé explicite)
Merci :)

Amicalement
Pensez "Réponse acceptée"
0
Rejoignez-nous