Créer enregistrements au 1er janvier de chaque année...
16 réponses
Isabelle ex Isa :-)
Bonjour
Qui pourrait m'aider ?
Soit une table LOCATIONS et une table Table1
dans la table locations j'ai un champ DU et un champ AU (date de d=E9but
et fin de contrat)
dans la Table1, un champ date de r=E9vision =E9tant la date anniversaire
du champ DU
Gr=E2ce =E0 Thierry(encore merci), j'ai ajout=E9 ce code qui permet de cr=E9=
er
automatiquement les enregistrements :
Dim rs As Recordset, i As Integer
Set rs =3D CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
For i =3D 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=3D" & rs!Num=E9ro & " AND
DateRevision=3D#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") &
"#") =3D 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Num=E9ro & "','" & DateAdd("yyyy", i, rs!DU) & "')"
Else
Debug.Print "Enregistrement d=E9j=E0 ajout=E9"
End If
Next
rs.MoveNext
Wend
rs.Close
et cela fonctionne nickel
mais, il y a un mais, pour quelques cas la date de r=E9vision n'est pas
la date anniversaire mais par exemple
pour un contrat du 01/04/2007 au 31/03/2016 la date de r=E9vision est au
01 janvier de chaque ann=E9e
J'ai cr=E9e un champ DateRevision dans la table LOCATIONS o=F9 j'ai
indiqu=E9 01/01/2008 (champ que j'utilise dans des requ=EAtes avec comme
crit=E8re est null pour le suivi des autres r=E9visions "normales") mais
comment faire pour cr=E9er des enregistrements dans Table1 avec pour cet
exemple :
01/01/2008
01/01/2009
01/01/2010
01/01/2011
01/01/2012
01/01/2013
01/01/2014
01/01/2015
01/01/2016
01/01/2017
Et pour compliqu=E9 encore les choses, pour ces cas particuliers, la
date de r=E9vision n'est pas forc=E9ment au 1er janvier mais peut-=EAtre
aussi au 15 octobre de chaque ann=E9e par exemple
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Re-bonjour Isa !
Dim rs As Recordset, i As Integer, uDateRevision As Date)
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
A tester...
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Fabien
Bonjour
Qui pourrait m'aider ?
Soit une table LOCATIONS et une table Table1 dans la table locations j'ai un champ DU et un champ AU (date de début et fin de contrat) dans la Table1, un champ date de révision étant la date anniversaire du champ DU
Grâce à Thierry(encore merci), j'ai ajouté ce code qui permet de créer automatiquement les enregistrements :
Dim rs As Recordset, i As Integer Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
et cela fonctionne nickel
mais, il y a un mais, pour quelques cas la date de révision n'est pas la date anniversaire mais par exemple pour un contrat du 01/04/2007 au 31/03/2016 la date de révision est au 01 janvier de chaque année J'ai crée un champ DateRevision dans la table LOCATIONS où j'ai indiqué 01/01/2008 (champ que j'utilise dans des requêtes avec comme critère est null pour le suivi des autres révisions "normales") mais comment faire pour créer des enregistrements dans Table1 avec pour cet exemple : 01/01/2008 01/01/2009 01/01/2010 01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015 01/01/2016 01/01/2017
Et pour compliqué encore les choses, pour ces cas particuliers, la date de révision n'est pas forcément au 1er janvier mais peut-être aussi au 15 octobre de chaque année par exemple
Merci d'avance
Isabelle ex Isa :-)
Salut, En modifiant legerement Dim rs As Recordset, i As Integer
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where DateRevision<>null";)'Tu ne traite que ceux qui ont une valeur dans
DateRevision
rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DateRevision, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DateRevision), "mm/dd/yyyy") &
"#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where DateRevision=null") ' Tu ne traites que les baux normaux
rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close Set Rs=nothing
A tester ;-)
Bonjour
Qui pourrait m'aider ?
Soit une table LOCATIONS et une table Table1
dans la table locations j'ai un champ DU et un champ AU (date de début
et fin de contrat)
dans la Table1, un champ date de révision étant la date anniversaire
du champ DU
Grâce à Thierry(encore merci), j'ai ajouté ce code qui permet de créer
automatiquement les enregistrements :
Dim rs As Recordset, i As Integer
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") &
"#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
et cela fonctionne nickel
mais, il y a un mais, pour quelques cas la date de révision n'est pas
la date anniversaire mais par exemple
pour un contrat du 01/04/2007 au 31/03/2016 la date de révision est au
01 janvier de chaque année
J'ai crée un champ DateRevision dans la table LOCATIONS où j'ai
indiqué 01/01/2008 (champ que j'utilise dans des requêtes avec comme
critère est null pour le suivi des autres révisions "normales") mais
comment faire pour créer des enregistrements dans Table1 avec pour cet
exemple :
01/01/2008
01/01/2009
01/01/2010
01/01/2011
01/01/2012
01/01/2013
01/01/2014
01/01/2015
01/01/2016
01/01/2017
Et pour compliqué encore les choses, pour ces cas particuliers, la
date de révision n'est pas forcément au 1er janvier mais peut-être
aussi au 15 octobre de chaque année par exemple
Merci d'avance
Isabelle ex Isa :-)
Salut,
En modifiant legerement
Dim rs As Recordset, i As Integer
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where
DateRevision<>null";)'Tu ne traite que ceux qui ont une valeur dans
DateRevision
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
For i = 1 To DateDiff("yyyy", rs!DateRevision, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DateRevision=#" & Format(DateAdd("yyyy", i, rs!DateRevision),
"mm/dd/yyyy") &
"#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Numéro & "','" & DateAdd("yyyy", i, rs!DateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where
DateRevision=null") ' Tu ne traites que les baux normaux
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") &
"#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
Set Rs=nothing
Soit une table LOCATIONS et une table Table1 dans la table locations j'ai un champ DU et un champ AU (date de début et fin de contrat) dans la Table1, un champ date de révision étant la date anniversaire du champ DU
Grâce à Thierry(encore merci), j'ai ajouté ce code qui permet de créer automatiquement les enregistrements :
Dim rs As Recordset, i As Integer Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
et cela fonctionne nickel
mais, il y a un mais, pour quelques cas la date de révision n'est pas la date anniversaire mais par exemple pour un contrat du 01/04/2007 au 31/03/2016 la date de révision est au 01 janvier de chaque année J'ai crée un champ DateRevision dans la table LOCATIONS où j'ai indiqué 01/01/2008 (champ que j'utilise dans des requêtes avec comme critère est null pour le suivi des autres révisions "normales") mais comment faire pour créer des enregistrements dans Table1 avec pour cet exemple : 01/01/2008 01/01/2009 01/01/2010 01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015 01/01/2016 01/01/2017
Et pour compliqué encore les choses, pour ces cas particuliers, la date de révision n'est pas forcément au 1er janvier mais peut-être aussi au 15 octobre de chaque année par exemple
Merci d'avance
Isabelle ex Isa :-)
Salut, En modifiant legerement Dim rs As Recordset, i As Integer
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where DateRevision<>null";)'Tu ne traite que ceux qui ont une valeur dans
DateRevision
rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DateRevision, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DateRevision), "mm/dd/yyyy") &
"#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
Set rs = CurrentDb.OpenRecordset("Select * from LOCATIONS where DateRevision=null") ' Tu ne traites que les baux normaux
rs.MoveLast rs.MoveFirst While Not rs.EOF For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, rs!DU), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, rs!DU) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close Set Rs=nothing
A tester ;-)
Thierry (ze Titi)
Correction:
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Correction:
Dim rs As Recordset, i As Integer, uDateRevision As Date)
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
A tester...
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Fabien
Re-bonjour Isa !
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
Salut
Je l'avais presque ;-) mais DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')" ne serait pas plus juste ? ^
Re-bonjour Isa !
Dim rs As Recordset, i As Integer, uDateRevision As Date)
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
A tester...
Salut
Je l'avais presque ;-)
mais
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')"
ne serait pas plus juste ? ^
Dim rs As Recordset, i As Integer, uDateRevision As Date) Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision),rs!DU,rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, dateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close
A tester...
Salut
Je l'avais presque ;-) mais DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')" ne serait pas plus juste ? ^
Thierry (ze Titi)
Je l'avais presque ;-) C'est vrai, j'ai vu ça...
mais DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')" ne serait pas plus juste ? ^ Juste 3 minutes trop tard... lol
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Je l'avais presque ;-)
C'est vrai, j'ai vu ça...
mais
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" &
rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')"
ne serait pas plus juste ? ^
Juste 3 minutes trop tard... lol
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
mais DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, UdateRevision) & "')" ne serait pas plus juste ? ^ Juste 3 minutes trop tard... lol
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Isabelle ex Isa :-)
Merci à vous deux
bon j'ai essayé le code suivant Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/ yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
Ben cela ne fait rien du tout sniff !!!
Merci à vous deux
bon j'ai essayé le code suivant
Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/
yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('"
& rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
DoCmd.Close
bon j'ai essayé le code suivant Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/ yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
Ben cela ne fait rien du tout sniff !!!
Thierry (ze Titi)
bon j'ai essayé le code suivant Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/ yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
Ben cela ne fait rien du tout S'il existe déjà des enregistrements pour les dates calculées, la
fonction n'insère rien. Pars-tu bien d'une Table1 vide ?
Sinon, petite correction au niveau du For: For i = 1 To DateDiff("yyyy", uDateRevision, rs!AU) - 1
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
bon j'ai essayé le code suivant
Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/
yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('"
& rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
DoCmd.Close
End Sub
Ben cela ne fait rien du tout
S'il existe déjà des enregistrements pour les dates calculées, la
fonction n'insère rien. Pars-tu bien d'une Table1 vide ?
Sinon, petite correction au niveau du For:
For i = 1 To DateDiff("yyyy", uDateRevision, rs!AU) - 1
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
bon j'ai essayé le code suivant Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DateRevision), rs!DU, rs!DateRevision) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DateRevision=#" & Format(DateAdd("yyyy", i, uDateRevision), "mm/dd/ yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DateRevision) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
Ben cela ne fait rien du tout S'il existe déjà des enregistrements pour les dates calculées, la
fonction n'insère rien. Pars-tu bien d'une Table1 vide ?
Sinon, petite correction au niveau du For: For i = 1 To DateDiff("yyyy", uDateRevision, rs!AU) - 1
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Isabelle ex Isa :-)
je viens de tester à nouveau j'ai une erreur sur cette ligne
erreur 3265 élément non trouvé sur cette collection
c'est ma faute je m'a gouré dans le nomp du champ j'ai modifié mais cela ne fonctionne toujours pas
Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs! DATE_REVISION) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DATE_REVISION=#" & Format(DateAdd("yyyy", i, =====> uDATE_REVISI ON), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDATE_REVISION) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
erreur variable non défini au niveau de =======>uDATE_REVISION
P.S. qui pourrait me traduire tout ce code et comment vous faites pour écrire tout çà ?
Merci
je viens de tester à nouveau j'ai une erreur sur cette ligne
erreur 3265
élément non trouvé sur cette collection
c'est ma faute je m'a gouré dans le nomp du champ j'ai modifié mais
cela ne fonctionne toujours pas
Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!
DATE_REVISION)
For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND
DATE_REVISION=#" & Format(DateAdd("yyyy", i, =====> uDATE_REVISI ON),
"mm/dd/yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('"
& rs!Numéro & "','" & DateAdd("yyyy", i, uDATE_REVISION) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
DoCmd.Close
End Sub
erreur variable non défini au niveau de
=======>uDATE_REVISION
P.S. qui pourrait me traduire tout ce code et comment vous faites pour
écrire tout çà ?
erreur 3265 élément non trouvé sur cette collection
c'est ma faute je m'a gouré dans le nomp du champ j'ai modifié mais cela ne fonctionne toujours pas
Private Sub Commande101_Click()
DoCmd.RunCommand acCmdSaveRecord
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs! DATE_REVISION) For i = 1 To DateDiff("yyyy", rs!DU, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DATE_REVISION=#" & Format(DateAdd("yyyy", i, =====> uDATE_REVISI ON), "mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDATE_REVISION) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
End Sub
erreur variable non défini au niveau de =======>uDATE_REVISION
P.S. qui pourrait me traduire tout ce code et comment vous faites pour écrire tout çà ?
Merci
Isabelle ex Isa :-)
Je me permets d'ajouter j'ai un champ nommé DATE_REVISION dans la table LOCATIONS et un champ nommé DateRevision dans la table Table1
comme le code ne fonctionnait pas j'ai modifié le nom des champs mais comme je n'arrive pas à tout comprendre j'ai dû modifier ce que ne fallait pas
Quelle galère, y'a pu rien qui marche :-(
Isabelle ex Isa :-)
Je me permets d'ajouter
j'ai un champ nommé DATE_REVISION dans la table LOCATIONS
et un champ nommé DateRevision dans la table Table1
comme le code ne fonctionnait pas j'ai modifié le nom des champs mais
comme je n'arrive pas à tout comprendre j'ai dû modifier ce que ne
fallait pas
Je me permets d'ajouter j'ai un champ nommé DATE_REVISION dans la table LOCATIONS et un champ nommé DateRevision dans la table Table1
comme le code ne fonctionnait pas j'ai modifié le nom des champs mais comme je n'arrive pas à tout comprendre j'ai dû modifier ce que ne fallait pas
Quelle galère, y'a pu rien qui marche :-(
Isabelle ex Isa :-)
Thierry (ze Titi)
uDateRevision doit rester tel quel, c'est le nom de la variable que je définis au départ par: Dim uDateRevision As Date Elle me permet de stocker la date d'origine du contrat (ou la date de première révision si elle est renseignée dans la table LOCATIONS. Je fais ce test au niveau de la ligne:
uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION) Si l'on tient compte de la correction du nom du champ dans la table, on doit donc obtenir:
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION) For i = 1 To DateDiff("yyyy", uDateRevions, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DATE_REVISION=#" & Format(DateAdd("yyyy", i,uDateRevision),"mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
La boucle While - Wend permet de parcourir l'ensemble des enregistrements de ta table LOCATIONS A l'intérieur de cette boucle, j'en fais une autre (For - Next) qui permet de créer l'ensemble des enregistrements entre la date de début et de fin de contrat Dans cette boucle For-Next, je teste juste la non existence d'un enregistrement à la date calculée. C'est tout ce qu'il y a dans ce code, rien de particulièrement sorcier.
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
uDateRevision doit rester tel quel, c'est le nom de la variable que je définis au départ par:
Dim uDateRevision As Date
Elle me permet de stocker la date d'origine du contrat (ou la date de première révision si elle est renseignée dans la table LOCATIONS. Je fais ce test au niveau de la ligne:
uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION)
Si l'on tient compte de la correction du nom du champ dans la table, on doit donc obtenir:
Dim rs As Recordset, i As Integer, uDateRevision As Date
Set rs = CurrentDb.OpenRecordset("LOCATIONS")
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION)
For i = 1 To DateDiff("yyyy", uDateRevions, rs!AU) - 1
If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DATE_REVISION=#" & Format(DateAdd("yyyy", i,uDateRevision),"mm/dd/yyyy") & "#") = 0 Then
DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')"
Else
Debug.Print "Enregistrement déjà ajouté"
End If
Next
rs.MoveNext
Wend
rs.Close
DoCmd.Close
La boucle While - Wend permet de parcourir l'ensemble des enregistrements de ta table LOCATIONS
A l'intérieur de cette boucle, j'en fais une autre (For - Next) qui permet de créer l'ensemble des enregistrements entre la date de début et de fin de contrat
Dans cette boucle For-Next, je teste juste la non existence d'un enregistrement à la date calculée.
C'est tout ce qu'il y a dans ce code, rien de particulièrement sorcier.
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
uDateRevision doit rester tel quel, c'est le nom de la variable que je définis au départ par: Dim uDateRevision As Date Elle me permet de stocker la date d'origine du contrat (ou la date de première révision si elle est renseignée dans la table LOCATIONS. Je fais ce test au niveau de la ligne:
uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION) Si l'on tient compte de la correction du nom du champ dans la table, on doit donc obtenir:
Dim rs As Recordset, i As Integer, uDateRevision As Date Set rs = CurrentDb.OpenRecordset("LOCATIONS") rs.MoveLast rs.MoveFirst While Not rs.EOF uDateRevision = IIf(IsNull(rs!DATE_REVISION), rs!DU, rs!DATE_REVISION) For i = 1 To DateDiff("yyyy", uDateRevions, rs!AU) - 1 If DCount("*", "Table1", "idbail=" & rs!Numéro & " AND DATE_REVISION=#" & Format(DateAdd("yyyy", i,uDateRevision),"mm/dd/yyyy") & "#") = 0 Then DoCmd.RunSQL "INSERT INTO Table1(Idbail,DATE_REVISION) VALUES('" & rs!Numéro & "','" & DateAdd("yyyy", i, uDateRevision) & "')" Else Debug.Print "Enregistrement déjà ajouté" End If Next rs.MoveNext Wend rs.Close DoCmd.Close
La boucle While - Wend permet de parcourir l'ensemble des enregistrements de ta table LOCATIONS A l'intérieur de cette boucle, j'en fais une autre (For - Next) qui permet de créer l'ensemble des enregistrements entre la date de début et de fin de contrat Dans cette boucle For-Next, je teste juste la non existence d'un enregistrement à la date calculée. C'est tout ce qu'il y a dans ce code, rien de particulièrement sorcier.
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info