Bonjour, j’aimerai savoir si quelqu’un peut m’aider à résoudre un petit problème sur VBA ACCESS.
Il s’agit de dupliquer des enregistrements d’une table Access un certain nombre de fois, basé sur la valeur d’un champ de la table. Je m’explique plus en détail.
Voici la table la table
Nom Prénom Nombre de convocation date de la première convocation
Jean Dupond 3 12/09/2012
Marie Blanchard 1 01/01/1999
John Kerry 2 02/02/2010
Ce que je souhaite obtenir, c’est de modifier la table ou d’en créer une autre qui duplique chaque enregistrement par le nombre de convocation de chaque individu et créer un quatrième champ ‘date de la prochaine convocation’ qui correspond a la date de la première convocation implémenter d’un mois a chaque ligne dupliquée.
Le résultat donnerai quelque chose qui ressemble a ceci :
Nom Prénom Nombre date de la Date de la
de convocation première convocation prochaine convocation
Jean Dupond 3 12/09/2012 12/10/2012
Jean Dupond 3 12/09/2012 12/11/2012
Jean Dupond 3 12/09/2012 12/12/2012
Jean Dupond 3 12/09/2012 12/01/2013
Marie Blanchard 1 01/01/1999 01/02/1999
Marie Blanchard 1 01/01/1999 01/03/1999
John Kerry 2 02/02/2010 02/03/2010
John Kerry 2 02/02/2010 02/04/2010
John Kerry 2 02/02/2010 02/05/2010
Voici le code que j’ai écrit mais qui ne fonctionne pas .
Sub dupliquer()
Dim rst As Object
Dim rst2 As Object
Dim i As Integer
Dim n2 As Integer
Dim valeur As Integer
Set rst = CurrentDb.OpenRecordset("Ma Table")
Set rst2 = CurrentDb.OpenRecordset("Ma Table ")
For i = 1 To rst![Nombre_de_convocation]
rst2.AddNew
rst2![ Nom] = rst![ Nom]
rst2![Prenom] = rst![Prenom]
rst2![Nombre_de_concovaction] = rst![Nombre_de_concovaction]
rst2![Date_de_premiere_concovaction] = rst![ Date_de_premiere_concovaction]
rst2![Date_de_prochaine_concovaction] = DateSerial(Year(rst.[ Date_de_premiere_concovaction]), Month(rst.[ Date_de_premiere_concovaction]) + i, 0)Next i
rst.Close
rst2.Close
Set rst2 = Nothing
End Sub
Pourriez vous svp m’aider a l’améliorer ou la modifier complètement.
Merci d'avance.
Partager