[access] changement du mois d'une date
Résolu
lord_in
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
lord_in Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
lord_in Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
bonjour,
J’ai un petit problème que je n’arrive pas à résoudre
Dans un formulaire je dois taper une date (X1= le jour, X2= le mois et X3= l’année)
Et je dois créer une table avec 19 champs avec la date et d’un champ à l’autre il n’y a que le mois qui doit changer. Mon problème c’est qu’il me met le mois 13 et il ne passe pas au 1er mois et l’année N+1
Voilà mon code
Option Compare Database
Dim mabase As Database, monindex As Index, monchamp As Object, matabledéf As TableDef
Dim T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 As Date
Private Sub Commande0_Click()
nouelletable
End Sub
Private Sub effacerlatable()
DoCmd.DeleteObject acTable, "creafichier"
End Sub
Private Sub nouelletable()
Set mabase = CurrentDb()
X1 = ZT_J.Value
X2 = ZT_M.Value
X3 = ZT_A.Value
T = X1 & " / " & X2 & " / " & X3
T1 = X1 & " / " & X2 + 1 & " / " & X3
T2 = X1 & " / " & X2 + 2 & " / " & X3
T3 = X1 & " / " & X2 + 3 & " / " & X3
T4 = X1 & " / " & X2 + 4 & " / " & X3
T5 = X1 & " / " & X2 + 5 & " / " & X3
T6 = X1 & " / " & X2 + 6 & " / " & X3
T7 = X1 & " / " & X2 + 7 & " / " & X3
T8 = X1 & " / " & X2 + 8 & " / " & X3
T9 = X1 & " / " & X2 + 9 & " / " & X3
T10 = X1 & " / " & X2 + 10 & " / " & X3
T11 = X1 & " / " & X2 + 11 & " / " & X3
T12 = X1 & " / " & X2 + 12 & " / " & X3
T13 = X1 & " / " & X2 + 13 & " / " & X3
T14 = X1 & " / " & X2 + 14 & " / " & X3
T15 = X1 & " / " & X2 + 15 & " / " & X3
T16 = X1 & " / " & X2 + 16 & " / " & X3
T17 = X1 & " / " & X2 + 17 & " / " & X3
T18 = X1 & " / " & X2 + 18 & " / " & X3
T19 = X1 & " / " & X2 + 19 & " / " & X3
T20 = X1 & " / " & X2 + 20 & " / " & X3
T21 = X1 & " / " & X2 + 21 & " / " & X3
Set matabledéf = mabase.CreateTableDef("creafichierfts")
Set monchamp = matabledéf.CreateField("Matl", dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("Mat description", dbText)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("name", dbText)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("fts " & T, dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("reel" & T, dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("fts " & T1, dbLong)
If X2 + 1 > 12 Then X2 = 1 And X3 = X3 + 1
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("reel" & T1, dbLong)
matabledéf.Fields.Append monchamp
With matabledéf
Set monchamp = .CreateField("fts " & T2, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T3, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T4, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T5, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T6, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T7, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T8, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T9, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T10, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T11, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T12, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T13, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T14, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T15, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T16, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T17, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T18, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T19, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T20, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts" & T21, dbLong)
.Fields.Append monchamp
End With
mabase.TableDefs.Append matabledéf
MsgBox ("table est créée")
End Sub
merci de votre aide
J’ai un petit problème que je n’arrive pas à résoudre
Dans un formulaire je dois taper une date (X1= le jour, X2= le mois et X3= l’année)
Et je dois créer une table avec 19 champs avec la date et d’un champ à l’autre il n’y a que le mois qui doit changer. Mon problème c’est qu’il me met le mois 13 et il ne passe pas au 1er mois et l’année N+1
Voilà mon code
Option Compare Database
Dim mabase As Database, monindex As Index, monchamp As Object, matabledéf As TableDef
Dim T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 As Date
Private Sub Commande0_Click()
nouelletable
End Sub
Private Sub effacerlatable()
DoCmd.DeleteObject acTable, "creafichier"
End Sub
Private Sub nouelletable()
Set mabase = CurrentDb()
X1 = ZT_J.Value
X2 = ZT_M.Value
X3 = ZT_A.Value
T = X1 & " / " & X2 & " / " & X3
T1 = X1 & " / " & X2 + 1 & " / " & X3
T2 = X1 & " / " & X2 + 2 & " / " & X3
T3 = X1 & " / " & X2 + 3 & " / " & X3
T4 = X1 & " / " & X2 + 4 & " / " & X3
T5 = X1 & " / " & X2 + 5 & " / " & X3
T6 = X1 & " / " & X2 + 6 & " / " & X3
T7 = X1 & " / " & X2 + 7 & " / " & X3
T8 = X1 & " / " & X2 + 8 & " / " & X3
T9 = X1 & " / " & X2 + 9 & " / " & X3
T10 = X1 & " / " & X2 + 10 & " / " & X3
T11 = X1 & " / " & X2 + 11 & " / " & X3
T12 = X1 & " / " & X2 + 12 & " / " & X3
T13 = X1 & " / " & X2 + 13 & " / " & X3
T14 = X1 & " / " & X2 + 14 & " / " & X3
T15 = X1 & " / " & X2 + 15 & " / " & X3
T16 = X1 & " / " & X2 + 16 & " / " & X3
T17 = X1 & " / " & X2 + 17 & " / " & X3
T18 = X1 & " / " & X2 + 18 & " / " & X3
T19 = X1 & " / " & X2 + 19 & " / " & X3
T20 = X1 & " / " & X2 + 20 & " / " & X3
T21 = X1 & " / " & X2 + 21 & " / " & X3
Set matabledéf = mabase.CreateTableDef("creafichierfts")
Set monchamp = matabledéf.CreateField("Matl", dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("Mat description", dbText)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("name", dbText)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("fts " & T, dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("reel" & T, dbLong)
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("fts " & T1, dbLong)
If X2 + 1 > 12 Then X2 = 1 And X3 = X3 + 1
matabledéf.Fields.Append monchamp
Set monchamp = matabledéf.CreateField("reel" & T1, dbLong)
matabledéf.Fields.Append monchamp
With matabledéf
Set monchamp = .CreateField("fts " & T2, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T3, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T4, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T5, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T6, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T7, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T8, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T9, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T10, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T11, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T12, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T13, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T14, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T15, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T16, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T17, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T18, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T19, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts " & T20, dbLong)
.Fields.Append monchamp
Set monchamp = .CreateField("fts" & T21, dbLong)
.Fields.Append monchamp
End With
mabase.TableDefs.Append matabledéf
MsgBox ("table est créée")
End Sub
merci de votre aide
A voir également:
- [access] changement du mois d'une date
- Changement dns - Guide
- Changement d'écriture facebook - Guide
- Exif date changer - Télécharger - Albums photo
- Changement d'heure - Guide
- Publipostage date inversée ✓ - Forum Word
1 réponse
Salut,
je serais toi, je serais plus strict dans la déclaration de mes variables :
Dim T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 As Date
Ici, seule T21 est une date, les autres sont en variant.
X1, X2 et X3 ne sont pas déclarés.
Est-on sûr qu'on reçoit des numériques dedans ? (Forcer avec X1= val(ZT_J.Value))
je serais toi, je serais plus strict dans la déclaration de mes variables :
Dim T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 As Date
Ici, seule T21 est une date, les autres sont en variant.
X1, X2 et X3 ne sont pas déclarés.
Est-on sûr qu'on reçoit des numériques dedans ? (Forcer avec X1= val(ZT_J.Value))
En fairt mon X1 c’est le jour et mon X2 c’est le mois et mon X3 c’est l’année
Maintenant la mis bascule de 12 à 1 mais en fait mais le mois reste à 1 après
Et c’est le jour qui bascule sur 13 et change d’un champ à l’autre
Je te mets un exemple
J’ai mis X1=1 et X2= 5 et X3=2005
Et voilà les champs qui me donne
Forecats01/05/2005
reel01/05/2005
Forecats01/06/2005
forecasts01/07/2005
forecasts01/08/2005
.
.
.
forecasts01/12/2005
forecasts13/01/2005
forecasts14/01/2005
.
.
.
.
forecasts26/01/2005
et j’ai déclaré X1, X2 e X3 as string
est ce que je peux déclarer X1 comme jour et X2 comme mois et X3 comme année ?????
et comment faire
Merci
Et je suis assuré qu’on met des numéros dedans
Mais le problème c’est qu’il passe de la date
01/11/2005
A 01/12/2005 (ca c’est normal)
Et après à 13/01/2005 (alors que ca doit être 01/01/2006)
Et après 14/01/2005 (alors que ca doit être 01/02/2006)
Il faut mettre les dates entre #, car ACCESS cherche à les traiter en format anglais (mm/jj/aa)...
Donc quand tu as 01/12/2005, pour lui c'est 12 janvier qui passe à 13 janvier car il retrouve un format français...
Mais pour le # il ne me prends pas
Il me met un message d’erreur
‘Erreur de compilation’
‘Attendu : expression’
Voilà ce que j’ai mis
T = # X1 & " / " & X2 & " / " & X3
merci de ton aide