Insérez une ligne dans une table automatique chaque mois

Résolu
Jiben59 Messages postés 127 Statut Membre -  
Jiben59 Messages postés 127 Statut Membre -
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

  1. patrick97491
     
    microsoft est ton ami lol http://support.microsoft.com/kb/931407/fr
    1
  2. Jiben59 Messages postés 127 Statut Membre 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.
    0
  3. patrick97491
     
    En fait access te dis que ta macro s'est plantée
    0
  4. patrick97491
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jiben59 Messages postés 127 Statut Membre 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.
    0
  7. Jiben59 Messages postés 127 Statut Membre 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.
    0
  8. Jiben59 Messages postés 127 Statut Membre 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.
    0
  9. Jiben59 Messages postés 127 Statut Membre 1
     
    Toujours personne ?
    0