je l'ai rentré à la main car dans la liste déroulante, ya toujours l'année et moi je veux que le jour et le mois.
Ce format marche très bien quand jj>12
je l'ai rentré à la main car dans la liste déroulante, ya toujours l'année et moi je veux que le jour et le mois.
Ce format marche très bien quand jj>12
Dit moi c'est toi qui remplit le contenu du Textbox via ton code ou bien c'est access qui le fait automatiquement ?
Neilos
c'est access: en fait je veux qqchose dans ce genre:
semaine n-3: du 30/05 au 03/06
semaine n-2: du 06/06 au 10/06
semaine n-1: du 13/06 au 17/06
semaine n: du 20/06 au 24/06
Oui j'avais compris ce que tu veux.
Par contre je ne vois pas pourquoi il ne te le mettrait pas au bon format par défaut.
Une solution pourrait être de modifier ta requête SQL qui fourni les données à ton état : je ne sais pas comment tu stockes tes semaines ou comment tu détermines le premier jour de la semaine mais à partir d'une date voila comment faire :
Du coup DateFormattee sera une chaîne de caractère mais elle affichera bien ce que tu voudras, à savoir la date contenue dans ChampDate au format jj/mm
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT (DAY(ChampDate) & "/" & MONTH(ChampDate)) AS DateFormattee, .....
Neilos
je ne stocke pas les semaines puisque je les calcule à partir de la date d'aujourd'hui. Je n'ai donc pas de requete SQL.
Si j'utilise ta syntaxe qui consiste à mettre :
j'obtiens toujours 1.667
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fin = Day(DateFin) & "/" & Month(DateFin)
J'ai crée un nouveau formulaire et j'y ai placé un TextBox nommé Text11. J'ai laissé la propriété Format de ce TextBox vide.
Dans l'évènement OnClick d'un bouton j'ai mis le code suivant :
Date prenant la date d'aujourd'hui, après un clic sur le bouton j'ai bien le texte
Code : Sélectionner tout - Visualiser dans une fenêtre à part Text11 = Day(Date) & "/" & Month(Date)
"21/6" qui s'affiche dedant.
Chez toi il fait le calcul c'est bizarre...supprime voir ton TextBox et remet en un neuf...à tout hasard !
Neilos
en fait, il ne fait le calcul que quand Fin en en string.
Quand il est en Date, ça marche à part qu'il inverse le jour et le mois quand le jour est <12.
Essaye plutot avec une date du genre 03/06, moi ça me donne 06/03 quand Fin est une Date.
C'est pas normal qu'il te calcul ça si Fin est en string !
Par contre pour l'inversion jour/mois c'est "normal". En plaçant ceci dans mon OnClick de mon TextBox :
Il m'affiche 3/6. VBA travaille en anglais, je pense que si tu mets 23/01/2005 il switch tout seul les jours et mois pour avoir une date qui tient la route? VBA m'a l'air de travailler en mode mm/jj/yyyy ce qui ne m'étonne pas car c'est anglais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim dDate As Date dDate = #6/3/2005# Text11 = Day(dDate) & "/" & Month(dDate)
Si tu veux inverser les champs mm et jj, je m'étais écrit une petite fonction pour cela :
En espérant que cela résolve ton problème,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Function DatabaseDate(strDate As String) ' Echange les champs jours et mois d'une date xx/xx/aaaa Dim strWork As String Dim iTemp As Integer Dim myArray As Variant ' Extraction du jour strWork = "/" & strDate 'Debug.Print "strWork = " & strWork myArray = Split(strWork, "/", 4) If UBound(myArray) <> 3 Then 'Debug.Print "UBound = " & UBound(myArray) DatabaseDate = "" Else DatabaseDate = myArray(2) & "/" & myArray(1) & "/" & myArray(3) End If End Function
Neilos
est-ce qu'il n'y a pas moyen de dire que "/" est un caractère spécial qui doit apparaitre et non pas un signe de calcul?
par exemple, mettre un % ou qqchose comme ça devant?
Ben normalement "/" c'est une chaine de caractère donc il n'est pas censé l'interpréter.
La fonction que je t'ai passé ne fonctionne pas ?
Neilos
si mais mon problème est de savoir quand le format n'est pas bon.
Il faudrait pouvoir savoir si la date est au format anglais ou français pour appeler la fonction que si besoin
Alors attend si je récapitule tout, tu fais quelque chose comme cela :
Donc en fait ma fonction ne te sers à rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim dDebut, dFin As Date dDebut = Date() dFin = Date() ' Ensuite tu fait les modifications qui vont bien sur ces dates pour ' avoir les bonnes semaines 'TB_Debut est le TextBox devant représenter la date de début 'TB_Fin celui représentant la date de fin TB_Debut = Day(dDebut) & "/" & Month(dFin) TB_Fin = Day(dFin) & "/" & Month(dFin)
Essaye en remplacant le / par un autre caractère, comme - par exemple.
Neilos
tu as bien compris.
Pour ce qui est du "-", c'est pareil que pour le "/", à part que maintenant, il me fait la soustraction au lieu de la division.
Pour être sûr j'ai crée une nouvelle base vide.
J'y ai ajouté un forumlaire ainsi qu'un TextBox nommé Text0 et un bouton.
Dans le OnClick de ce bouton j'ai mis le code suivant (le même qu'avant) :
Tout cela fonctionne parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim dFin As Date dFin = Date Text0 = Day(dFin) & "/" & Month(dFin)
Peux tu tester de la même façon en créant une nouvelle base et en ne changeant rien d'autre (aucune propriété des éléments notement) que ce que j'ai fait ci-dessus ?
Neilos
ça marche très bien sur le formulaire mais le problème c'est que ça ne marche pas sur les états...
J'ai testé sur un etat ça fonctionne très bien !!!!
Edit : je n'ai pas utilisé d'assistant j'ai juste crée un état avec un TextBox
Neilos
quelle date avais-tu, la date d'aujourd'hui?
Il m'affiche 3/6 ce qui est juste vu que j'ai entré une date dans mon code VB elle est donc au format mm/jj/yyyy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim dFin As Date dFin = #6/3/2005# Text0 = Day(dFin) & "/" & Month(dFin)
Edit : ça marche bien aussi avec la date d'aujourd'hui
Neilos
Mon problème viens peut-etre du fait que ma date n'est pas saisie dans le code mais calculée, je ne peut donc pas mettre : #06/03/2005# car j'ai essayé de mettre ma variable contenant la date entre # mais ça ne marche pas...
Je crois que je vais abandonner...
Tu peux mettre ton code en entier de sorte que je le teste chez moi ?
Allez courage on va y arriver !
Neilos
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager