IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Insérer plusieurs fois les mêmes lignes dans une table [AC-365]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut Insérer plusieurs fois les mêmes lignes dans une table
    Bonjour

    Je suis en train de réaliser l'enregistrement des dépenses d'une entreprise

    Lorsque certaines dépenses sont mensualisées, et récurrentes mensuellement, je voudrai pouvoir cliquer sur une case à cocher "dépense mensuelle récurrente", indiquer le nombre de mois total de la mensualité et l'insérer autant de fois qu'indiqué dans la table dépense

    Il me faut enregistrer tous les champs à l'identique, mais en modifiant le mois des nouvelles échéances (datedepense + un mois)
    Ces dépenses récurrentes portent sur l'année en cours uniquement

    J'ai réaliser cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NbreMensualite_AfterUpdate()
    Dim Sql
    Sql =INSERT INTO T_Depense( IdCategorieDepense, IdEntreprise, IdMandat, MontantHt, TauxTva, DateDepense, LienScan, Commentaire, DepenseMensuelle, NbreMensualite, NumCreateurDepense ) SELECT T_Depense.IdCategorieDepense, T_Depense.IdEntreprise, T_Depense.IdMandat, T_Depense.MontantHt, T_Depense.TauxTva, T_Depense.DateDepense, T_Depense.LienScan, T_Depense.Commentaire, T_Depense.DepenseMensuelle, T_Depense.NbreMensualite, T_Depense.NumCreateurDepense
    FROM T_Depense WHERE (((T_Depense.IdDepense)=[Formulaires]![F_DepenseDetail]![IdDepense]));"
     
    End Sub
    mais pour la reproduire autant de fois que d'échéances je bloque

    pourriez vous me donner un petit coup de main ?

    En plus je n'arrive pas à couper correctement la SQL

    Merci

    Isabelle
    Isabelle
    Access version office 365
    windows 7 sous mac

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    octobre 2007
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 929
    Points : 6 045
    Points
    6 045
    Par défaut
    Salut
    Concerne les boutons de commande formulaire. Dans la catégorie Opérations sur enregistrement vous avez l'action Dupliquer.
    Parce que si certaines dépenses sont récurrentes, on passe en règle générale les dépenses au moment du fait générateur (date réelle de la dépense).
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Si la réponse est satisfaisante, alors 1 et n'oubliez pas de clôturer le sujet en cliquant sur

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Bonjour

    Merci pour réponse

    J'ai bien trouvé cette solution, mais cela m'oblige à entrer tous les mois la même dépense

    Alors que lorsque je rentre la première le 01/01/2020, je sais que je vais avoir tous les mois jusqu'au 1/12/2020

    Je voudrais pouvoir la générer automatiquement à partir de la première

    Ce n'est pas possible en code d'après vous ?

    Voici le code que j'ai créé pour la 1ère duplication

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub NbreMensualite_AfterUpdate()
     
    Dim Sql
    Sql = "INSERT INTO T_Depense ( IdCategorieDepense, IdEntreprise, IdMandat, MontantHt, TauxTva, DateDepense, LienScan, Commentaire, DepenseMensuelle, NbreMensualite, NumCreateurDepense ) SELECT T_Depense.IdCategorieDepense, T_Depense.IdEntreprise, T_Depense.IdMandat, T_Depense.MontantHt, T_Depense.TauxTva, T_Depense.DateDepense, T_Depense.LienScan, T_Depense.Commentaire, T_Depense.DepenseMensuelle, T_Depense.NbreMensualite, T_Depense.NumCreateurDepense FROM T_Depense WHERE (((T_Depense.IdDepense)=[Formulaires]![F_DepenseDetail]![IdDepense]));"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL Sql
    Me.Zl_DepenseRecurrente.Requery
    DoCmd.SetWarnings true
     
    End Sub
    Je n'arrive toujours pas à couper la SQL

    Merci à vous

    Isabelle
    Isabelle
    Access version office 365
    windows 7 sous mac

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    octobre 2007
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 929
    Points : 6 045
    Points
    6 045
    Par défaut
    Pour couper votre syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub NbreMensualite_AfterUpdate()
        CurrentDb.Execute "INSERT INTO T_Depense( IdCategorieDepense, IdEntreprise, IdMandat, MontantHt, TauxTva, DateDepense, LienScan, Commentaire, DepenseMensuelle, NbreMensualite, NumCreateurDepense ) SELECT T_Depense.IdCategorieDepense, T_Depense.IdEntreprise, T_Depense.IdMandat, T_Depense.MontantHt, T_Depense.TauxTva, T_Depense.DateDepense, T_Depense.LienScan, T_Depense.Commentaire, T_Depense.DepenseMensuelle, T_Depense.NbreMensualite, T_Depense.NumCreateurDepense" _
        & " FROM T_Depense" _
        & " WHERE IdDepense = " & Me.IdDepense & "", dbFailOnError
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Si la réponse est satisfaisante, alors 1 et n'oubliez pas de clôturer le sujet en cliquant sur

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    octobre 2007
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 929
    Points : 6 045
    Points
    6 045
    Par défaut
    Pour votre problématique
    Il faudrait isoler dans une autre table, vos dépenses récurrentes, afin de pouvoir de manière simple les insérer dans votre tbl dépenses.
    La structure peut ou doit être la même que la tbl dépenses. Et vous construisez un form à partir de cette tbl. Sur un bouton de commande passer ce code. A vous de l'adapter. Le code tient compte de l'incrémentation des dates.
    tbl_dep_tmp est la tbl qui contient les dépenses récurrentes, tbl_dep contient la totalité des dépenses. La lecture des champs est simple.
    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
    Private Sub btntest_Click()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset, rst1 As DAO.Recordset
        Dim i As Integer
        Dim strSql As String
     
        strSql = "SELECT id_dep, date_dep, libelle_dep, montant_dep" _
        & " FROM tbl_dep_tmp" _
        & " WHERE id_dep = " & Me.id_dep
     
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset(strSql, dbOpenDynaset) 'source
        Set rst1 = dbs.OpenRecordset("tbl_dep", dbOpenDynaset) 'cible
     
        For i = 1 To Me.NbreMensualite.Value
        rst1.AddNew
        rst1!date_dep = DateSerial(Year([date_dep]), Month([date_dep]) + i, Day([date_dep]))
        rst1!libelle_dep = rst!libelle_dep
        rst1!montant_dep = rst!montant_dep
        rst1.Update
        Next i
     
    rst1.Close
    rst.Close
    dbs.Close
    Set rst1 = Nothing
    Set rst = Nothing
    Set dbs = Nothing
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Si la réponse est satisfaisante, alors 1 et n'oubliez pas de clôturer le sujet en cliquant sur

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Merci beaucoup

    je vais essayer

    bonne soirée
    Isabelle
    Access version office 365
    windows 7 sous mac

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Bonjour

    Après plusieurs heures à tenter cette méthode, j'en suis venue à l'idée que votre première remarque était juste

    Je ne peux pas valider une dépense sans en avoir la justification

    Par conséquent j'ai créé un bouton permettant de dupliquer l'opération précédente chaque mois avec la date réelle de paiement

    Une case indique le nombre d'échéances totales et le nombre restant diminue au fils des paiements

    Merci beaucoup pour votre aide

    Bonne semaine

    Isabelle
    Isabelle
    Access version office 365
    windows 7 sous mac

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer plusieur données en même temps dans une table
    Par Kasko dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 03/10/2015, 11h21
  2. [Plugin] Utiliser plusieurs fois je même jqgrid dans une page
    Par Christophe Charron dans le forum jQuery
    Réponses: 0
    Dernier message: 06/10/2012, 18h26
  3. Réponses: 2
    Dernier message: 12/01/2010, 13h00
  4. Plusieurs fois la même donnée dans une liste
    Par BRUNO71 dans le forum IHM
    Réponses: 3
    Dernier message: 21/01/2008, 09h22
  5. requêter deux fois le même champ dans une table
    Par SpaceFrog dans le forum Requêtes
    Réponses: 6
    Dernier message: 26/11/2007, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo