Insérez une ligne dans une table automatique chaque mois

[Résolu/Fermé]
Signaler
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
-
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
-
Bonjour,

J'ai créer mon compte bancaire sous Access, mais maintenant je souhaiterai créer un système qui permettrait d'enregistrer mon assurance dans la table mouvements.

C'est à dire que le 5 de chaque mois, une ligne s'inscrit pour me déduire 100€ d'assurance sur mon compte bancaire.

Apparemment, il faudrait travailler avec un langage informatique mais je ne connais aucun de ses langages.

Donc, si des personnes dévouées pourrais m'aider à faire progresser mon idée si vous plait.

Je vous remercie d'avance pour votre aide,
cordialement Jiben59


8 réponses


microsoft est ton ami lol http://support.microsoft.com/kb/931407/fr
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
1
Bonsoir,

pourrais je savoir ce que signifie ce message qui s'ouvre lors que je démarre ma base de données si vous plaît :

Capture d'écran : http://d8.e-loader.net/lU6V9O4jgY.jpg

Merci à ceux qui me répondrais.
Cordialement Jiben59.

En fait access te dis que ta macro s'est plantée

pour ta première question tu devrais t'inspirer de ça http://groupes.codes-sources.com/article-comment-entrer-date-recurrente-dans-formulaire-access-111077.aspx
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
1
Bonjour,

on ma conseiller de créer une table avec les champs suivants : http://d3.e-loader.net/OaPekbOIbZ.jpg

Et on ma fournit un code que j'ai adapté à cette table :

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



Mais je ne trouve pas ou j'aurais pu faire une erreur :s

Voici ma base de données d'exemple : https://www.box.com/s/zifejh2d6ocbypkcpgud

Je vous remercie de votre aide.
Cordialement Jiben59.
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
1
Bonjour,

effectivement c'était ceci le problème, je n'avais pas entendu parler de ce problème de cette erreur "2950", je vous remercie pour votre aide et de vos connaissances.

Modèle relationnel : http://d24.e-loader.net/HMQvfH2E4s.jpg

Petite dernière question, d'après vous faut il relier les clés primaires avec les champs de la table PaiementPeriodique, par exemple doit on relier CodePmt de la table Paiement avec le champs CodePmt de la table PaiementPeriodique ?

Encore merci pour votre aide.

Cordialement Jiben59.
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
1
Bonjour,
ce mois ci aucune lignes c'est misent automatiques alors que lors des test sa avait marché sur ma base de données d'essai.

Je vous transmet ici les captures d'écran de la table mouvements et PaiementPeriodique :

http://d19.e-loader.net/efB5HudOOf.png


http://d34.e-loader.net/vdiX4qPWfx.jpg


Le code VBA est le suivant :

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


Mais quand on ouvre le module, j'ai ce message qui s'affiche :

http://d28.e-loader.net/QYmtfclPPu.jpg

Si vous pourriez m'aidez si vous plaît et je serais là si vous avez des questions.

Bon dimanche à vous tous,
cordialement Jiben59.
Messages postés
120
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
2 janvier 2016
1
Toujours personne ?