Gestion d'un evenement periodique

bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 30 avril 2008 à 19:15
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 3 mai 2008 à 15:32
Bonjour,
mon probleme est le suivant : dans mon aplication je dois faire augmenter le solde (solde) d'un membre chaque année (apres la date de création de ce compte (date_creation)) en fonction de son pourcentage (taux), je suis obligé de programmé sur un nombre d'année determiné, je voudrais savoir comment le faire chaque année sans passer par un nombre d'année determiné.
la table COMPTE qui contient les champs date_creation, solde, et taux est celle sur laquelle va se passer la modification
Merci d'avance

3 réponses

bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
2 mai 2008 à 12:49
(re)Bonjour,
voici le code que j'ai tapé pour un an d'abord :
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
'procedure de connection
Call Connexion(cnx)
rst.Open"SELECT * FROM compte WHERE DateAdd('yyyy', 1, [date_creation]) < now()", cnx, adOpenKeyset, adLockOptimistic, adCmdText
If rst.RecordCount <> 0Then
rst.MoveFirst
DoWhileNot rst.EOF
Trans = rst!solde + ((rst!solde * rst!taux) / 100)
cnx.BeginTrans
cnx.Execute" Update compte set solde = " & Trans & " "
cnx.CommitTrans
rst.MoveNext
Loop
EndIf
Voici les problemes rencontrés :
1) c'est la catastrophe dans la table COMPTE tous les soldes ont été modifiés.
Comment faire ici pour que la modification ne porte que sur le recorset en cours correspondant à la requete et y fait la modification avant de passer à l'enregistrement suivant ?




2)Comment definir ma variable Trans pour qu'elle recupere aussi des décimales, parceque quand Trans contient des decimales il y un message d'erreur qui dit qu'il y a une erreur de syntaxe dans ma clause UPDATE, ici Trans est defini à Double (Dim Trans As Double), ou alors le probleme vient de ma base (access 2003) où solde est numerique
Merci d'avance pour votre aide sur laquelle je compte beaucoup.
0
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
3 mai 2008 à 15:32
Voici le code que j'ai tapé pour augmenter le solde en fonction du taux apres chaque année pour 15 ans :
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
'procedure de connection
Call Connexion(cnx)
rst.Open"SELECT * FROM compte where DateAdd('yyyy', 1, [date_creat]) = now() Or DateAdd('yyyy', 2, [date_creat]) = now() Or DateAdd('yyyy', 3, [date_creat]) = now() Or    ...   DateAdd('yyyy', 15, [date_creat]) = now() ", cnx, adOpenKeyset, adLockOptimistic, adCmdText
If rst.RecordCount <> 0Then
rst.MoveFirst
DoWhileNot rst.EOF
Trans = rst!solde + ((rst!solde * rst!taux) / 100)
rst!solde = Trans
rst.MoveNext
Loop
EndIf
je voudrais savoir comment faire pour qu'il s'exécute meme quand la machine est éteinte, parce que je crains qu'il y ait des dates qui correspondent au moment où le programme n'est pas exécuté et aussi un petite proposition d'amelioration du code serait la bienvenue<!-- / message -->
0
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
3 mai 2008 à 15:32
Voici le code que j'ai tapé pour augmenter le solde en fonction du taux apres chaque année pour 15 ans :
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
'procedure de connection
Call Connexion(cnx)
rst.Open"SELECT * FROM compte where DateAdd('yyyy', 1, [date_creat]) = now() Or DateAdd('yyyy', 2, [date_creat]) = now() Or DateAdd('yyyy', 3, [date_creat]) = now() Or    ...   DateAdd('yyyy', 15, [date_creat]) = now() ", cnx, adOpenKeyset, adLockOptimistic, adCmdText
If rst.RecordCount <> 0Then
rst.MoveFirst
DoWhileNot rst.EOF
Trans = rst!solde + ((rst!solde * rst!taux) / 100)
rst!solde = Trans
rst.MoveNext
Loop
EndIf
je voudrais savoir comment faire pour qu'il s'exécute meme quand la machine est éteinte, parce que je crains qu'il y ait des dates qui correspondent au moment où le programme n'est pas exécuté et aussi un petite proposition d'amelioration du code serait la bienvenue<!-- / message -->
0