Bonjour,
je n’arrive toujours pas avoir ce que je souhaite, sa serait dommage de laisser ceci tomber, lorsqu'on est presque arrivé à la fin.. :s
Merci pour votre aide la communauté.
Bonne soirée,
cordialement Jiben59.
Bonjour,
je n’arrive toujours pas avoir ce que je souhaite, sa serait dommage de laisser ceci tomber, lorsqu'on est presque arrivé à la fin.. :s
Merci pour votre aide la communauté.
Bonne soirée,
cordialement Jiben59.
Serait-il possible d'avoir une version de la base ?
@+.
Bonsoir,
il n'y a pas de problème, la voici : https://www.box.com/s/tpxohhf20iovvpl9ketx
Merci de votre réponse e de votre aide.
Cordialement Jiben59.
Je viens de regarder ta base, je ne vois pas l'autoexec ??? Pourquoi ?
Sinon, peux-tu me dire comment cela fonctionne ?
@+.
Bonsoir,
l'autoexec ce n'est pas ceci : http://d10.e-loader.net/SkQcXjPz98.jpg
On a créer une table PaiementPeriodique, est a l’intérieure de celle-ci, on a mit les champs suivants : http://d34.e-loader.net/J7BsX3lbvi.jpg
Tous ces champs permettent d'inscrire la ligne automatiquement dans la table Mouvements.
L'on ma donnée ce code, ce qui devrait permettre de mettre la ligne programmé dans la table PaiementPeriodique, automatiquement dans la table Mouvements :
Je vous remercie pour votre aide,
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Function MaJ_Periodique() Dim SQL As String, oSQL As DAO.Recordset Dim IDPaiPer As String, LibPaiPer As String, MTPaiPer As String, MoisPaiPer As String, CodePmt As String, CodeJrnl As String, CodeSsJrnl As String, CodePaiPer As String Dim ProchainPaiPer As Date, FuturPaiPer As Date DoCmd.SetWarnings False 'Je lis la table PaiementPeriodique pour ne récupérer que les paiements à faire SQL = "SELECT PaiementPeriodique.* " _ & " FROM PaiementPeriodique " _ & "WHERE PaiementPeriodique.FinPaiPer>Now() AND PaiementPeriodique.ProchainPaiPer<=Now();" 'Exécute la requête Set oSQL = CurrentDb.OpenRecordset(SQL) 'Fait l'analyse de tous les paiements Do Until oSQL.EOF 'Initialise mes variables IDPaiPer = oSQL("CodePaiPer") LibPaiPer = oSQL("LibellePaiPer") MTPaiPer = oSQL("MontantPaiPer") ProchainPaiPer = oSQL("ProchainPaiPer") FuturPaiPer = DateAdd("m", 1, ProchainPaiPer) 'Ajoute un mois à la date du paiement MoisPaiPer = Format(oSQL("ProchainPaiPer"), "MMMM") 'récupère le mois en texte CodePmt = oSQL("CodePmt") CodeJrnl = oSQL("CodeJrnl") CodeSsJrnl = oSQL("CodeSsJrnl") CodePaiPer = oSQL("CodePaiPer") 'Ajout la donnée dans la table Mouvements DoCmd.RunSQL "INSERT INTO Mouvements (DateMvt, LibelleMvt, MontantMvt, CodePmt, CodeJrnl, CodeSsJrnl, CodePaiPer) " _ & "VALUES (#" & Format(ProchainPaiPer, "MM/DD/YY") & "#, """ & LibPaiPer & UCase(Left(MoisPaiPer, 1)) & LCase(Right(MoisPaiPer, Len(MoisPaiPer) - 1)) & """, " & MTPaiPer & ", """ & CodePmt & """, """ & CodeJrnl & """, """ & CodeSsJrnl & """, """ & CodePaiPer & """)" 'Mise à jour la date du prochain paiement dans la table PaiementPeriodique DoCmd.RunSQL "UPDATE PaiementPeriodique SET PaiementPeriodique.ProchainPaiPer = #" & Format(FuturPaiPer, "MM/DD/YY") & "# " _ & "WHERE PaiementPeriodique.CodePaiPer=" & IDPaiPer & ";" oSQL.MoveNext Loop DoCmd.SetWarnings True End Function
cordialement.
Il faut que la macro s'appelle "autoexec" et pas autrement. Ton problème vient peut-être juste de cette erreur de nom
@+.
Bonjour,
un simple clique droit sur la macros, et un clique sur renomer suffit ?
Je vous remercie.
Cordialement Jiben59
Salut,
Oui, clic-droit + renommer, et bien mettre "autoexec", ainsi Access l'ouvrira à chaque fois que l'application sera ouverte.
@+.
OK je vous remercie mais maintenant j'ai ce message d'erreur : http://d7.e-loader.net/i5gU2zliHh.jpg
La ligne surligné en jaune dans le code :
Je vous remercie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DoCmd.RunSQL "INSERT INTO Mouvements (DateMvt, LibelleMvt, MontantMvt, CodePmt, CodeJrnl, CodeSsJrnl, CodePaiPer) " _ & "VALUES (#" & Format(ProchainPaiPer, "MM/DD/YY") & "#, """ & LibPaiPer & UCase(Left(MoisPaiPer, 1)) & LCase(Right(MoisPaiPer, Len(MoisPaiPer) - 1)) & """, " & MTPaiPer & ", """ & CodePmt & """, """ & CodeJrnl & """, """ & CodeSsJrnl & """, """ & CodePaiPer & """)"
Cordialement.
Fais avant le DoCmd.RunSQL :
Cela te donne quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msgbox "INSERT INTO Mouvements (DateMvt, LibelleMvt, MontantMvt, CodePmt, CodeJrnl, CodeSsJrnl, CodePaiPer) " _ & "VALUES (#" & Format(ProchainPaiPer, "MM/DD/YY") & "#, """ & LibPaiPer & UCase(Left(MoisPaiPer, 1)) & LCase(Right(MoisPaiPer, Len(MoisPaiPer) - 1)) & """, " & MTPaiPer & ", """ & CodePmt & """, """ & CodeJrnl & """, """ & CodeSsJrnl & """, """ & CodePaiPer & """)"
@+.
Je ne comprends, tu veux que je le mets avec l'ancien code ?
Non, je veux voir ce que donne la requête cela permet de voir ce qui peut "clocher".
@+.
Je ne comprends ce que vous désirez :s
C'est quoi la ligne de code que vous m'avez mit dans votre poste précédent ?
Désoler, de vous déranger.
Cordialement.
La ligne de code va faire apparaitre le code SQL qui devrait être joué pour voir s'il n'y a pas une erreur sur une donnée.
@+.
Oui mais le code que vous m'avez donné, c'est la même chose que le miens sauf que le début change ?
Moi le code SQL que j'ai mis, c'est celui qui été affiché en jaune après l'annonce du message d'erreur.
Merci de votre aide,
Cordialement.
C'est juste pour voir ce que le VBA va traduire, parfois il arrive que l'on trouve l'erreur avec cela.
Peux-tu me dire ce que cela donne comme message ?
@+.
Quand je veux mettre ton code au dessus de le mien, j'ai ceci : http://d26.e-loader.net/2gb9A5dHXq.jpg
Bon je viens de lancer la fonction et j'ai peut-être trouvé d'où vient le problème :
@+.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DoCmd.RunSQL "INSERT INTO Mouvements (DateMvt, LibelleMvt, MontantMvt, CodePmt, CodeJrnl, CodeSsJrnl, CodePaiPer) " _ & "VALUES (#" & Format(ProchainPaiPer, "MM/DD/YY") & "#, """ & LibPaiPer & UCase(Left(MoisPaiPer, 1)) & LCase(Right(MoisPaiPer, Len(MoisPaiPer) - 1)) & """, " & Replace(MTPaiPer, ",", ".") & ", """ & CodePmt & """, """ & CodeJrnl & """, """ & CodeSsJrnl & """, """ & CodePaiPer & """)"
Ok, mais comment vous avez fait aussi ?
Justement en mettant le msgbox, j'ai vu le code SQL, et j'ai vu que le nombre décimal était avec la virgule au lieu du point.
N'oublie pas de renommer ta macro "autoexec"
@+.
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