Ouvrir etat pour une semaine donnee a partir d'une date entree form - VB/VBA/VBS - Programmation
Marsh Posté le 25-10-2006 à 07:23:56
Bonjour,
si les lignes sont exactement celles que tu as dans ton code, mets un espace entre la , et le _ , ou plus simple : mets tout sur une ligne. Si c'est une refrappe, essayes plutôt des copier/coller cela évite les erreus de transcription.
mettre "ww" dans le datepart : interval = expression CHAINE
pour l'affichage: regarder si l'utilisation de:
dada=cdate( Me!date_entree) 'si nécessaire
wd = Weekday(Dada, 3)
MsgBox (Dada - wd) & " " & (Dada - wd + 4)
est correcte (tester sur les cas "limite" )
Cordialement
Marsh Posté le 25-10-2006 à 09:07:32
ca marche bien avec le datepart(), merci seniorpapou.
Au fait concernant ma 2e question, ce que je cherche a faire, c'est a partir d'une date rentree dans un formulaire, j'aimerais pourvoir afficher dans 2 text box dans un etat, la date du debut(lundi) et fin(vendredi) de semaine dans la laquelle la date est comprise. je m'explique:
par ex si l'utisateur rentre dans le formulaire la date de n'importe quelle jour de la semaine qu'il veut, disons il rentre la date de mercredi passe (donc 10/18/2006) j'aimerais que dans l'etat, ca m'affiche:
text_box1= 10/16/2006 et textbox2 =10/23/2006. Est ce faisable?
Ou bien est ce que c'est plus facile en prenant dimanche et samedi comme debut et fin de semaine?
Merci
Marsh Posté le 25-10-2006 à 09:54:31
bonjour,
à tester en mettant la bonne variable date
pour le lundi:
=CDate("18/10/2006" )-JourSem(CDate("18/10/2006" ))+2
pour le vendredi
=CDate("18/10/2006" )-JourSem(CDate("18/10/2006" ))+6
il y a surement un autre moyen mais je ne trouve pas
Cordialement
Hs: pour mon information tu n'as pas dit à Beegee sur la section sgbd si sa solution fonctionnait au sujet des GOOD ....
Marsh Posté le 30-10-2006 à 02:29:17
Salut seniorpapou,
Desolees de te repondre aussi tard, mais je viens tout juste d'essayer la requete de Beegee et ca marche tres bien
cordialement,
P.S: pour resoudre mon probleme de date. j'ai fait comme suit:
pour avoir le lundi, j'ai une fonction qui me revoie le lundi:
Public Function PremierJourSemaine(ByVal numSemaine As Byte, ByVal annee As Integer) As Date
Dim d As Date
Dim numS As Integer
' premier jour de l'année
d = DateSerial(annee, 1, 1)
' numéro de la semaine du 1er janvier
numS = DatePart("ww", d, vbMonday, vbFirstFourDays)
' si le 1er janvier fait partie de la dernière semaine de l'année précédente
' alors passe à la semaine suivante (la première de la nouvelle année)
If numS <> 1 Then d = DateAdd("d", 7, d)
' calcule le premier jour de la première semaine de l'année
d = DateAdd("d", 1 - Weekday(d, vbMonday), d)
' ajoute (numSemaine-1) semaines
PremierJourSemaine = DateAdd("ww", numSemaine - 1, d)
Me!date1 = PremierJourSemaine
End Function
et le vendredi m'est donne avec le code suivant:
Public Function DernierJourSemaine(ByVal numSemaine As Byte, ByVal annee As Integer) As Date
Dim d As Date
Dim numS As Integer
' premier jour de l'année
d = DateSerial(annee, 1, 1)
' numéro de la semaine du 1er janvier
numS = DatePart("ww", d, vbMonday, vbFirstFourDays)
' si le 1er janvier fait partie de la dernière semaine de l'année précédente
' alors passe à la semaine suivante (la première de la nouvelle année)
If numS <> 1 Then d = DateAdd("d", 7, d)
' calcule le premier jour de la première semaine de l'année
d = DateAdd("d", 5 - Weekday(d, vbMonday), d)
' ajoute (numSemaine-1) semaines
DernierJourSemaine = DateAdd("ww", numSemaine - 1, d)
Me!date2 = DernierJourSemaine
End Function
Marsh Posté le 25-10-2006 à 05:22:52
Salut a tous
J'ai un petit problème: j'ai un état où des transactions sont affichées que jai regroupé par numéro semaine dans ma requête. Jai créé un formulaire où lutilisateur rendre nimporte quel jour (sous le format :MM/JJ-AAAA) et ça doit ouvrir létat pour la semaine contenant ce jour. Mais mon code VBA pour faire ne marche par vraiment :
Dim stDocName As String
Dim semaine As String
semaine = DatePart(ww, Me!date_entree)
stDocName = "transaction_semaine"
DoCmd.OpenReport stDocName, acPreview, ,_
"[semaine] =" & "'" & semaine & "'"
Je dois my prendre mal quelque part car ça maffiche « Invalid procedure call or argument ».
De plus jaimerais que dans mon état ça pour afficher la date du premier jour (lundi) et du dernier jour (vendredi) de la semaine pour laquelle on imprime letat. Est-ce possible ?
Merci d'avance