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

Access Discussion :

Calcul automatique des champs date a partir de la valeur de deux autres champs


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut Calcul automatique des champs date a partir de la valeur de deux autres champs
    Bonjour,

    Je reviens vers pour un soucis que j'ai sur quelque lignes de codes, j'explique, j'ai un formulaire principale sur lequel j'ai un champ durée sous forme de liste déroulante, il exprime les durée en mois d'un contrat, c'est a dire 12, 14, 18, 24 etc..... et un champs date qui exprime la date d'entrée en vigueur du contrat ou éventuellement la prévision d'entrée en vigueur.

    J'ai aussi un sous formulaire sur lequel il y des champs date, [duree1],[duree2] etc .... ils vont jusqu'à 5 en prenant en compte la durée moyenne de nos contrats.

    Je met ici le code, je continue les explications après :


    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
    Private Sub duree_AfterUpdate()
    Select Case Me.duree
    Case "12"
    Forms!f_projet!f_duree.Form!Me.[duree1] = DateAdd("yyyy", Me.duree.Column(1), Me.[date_])
    Case "14"
    Forms!f_projet!f_duree.Form!Me.[duree2] = DateAdd("yyyy", Me.duree.Column(1), Me.[date_])
    Case "18"
    Forms!f_projet!f_duree.Form!Me.[duree3] = DateAdd("yyyy", Me.duree.Column(1), Me.[date_])
    Case "24"
    Forms!f_projet!f_duree.Form!Me.[duree4] = DateAdd("yyyy", Me.duree.Column(1), Me.[date_])
    Case "36"
    Forms!f_projet!f_duree.Form!Me.[duree5] = DateAdd("yyyy", Me.duree.Column(1), Me.[date_])
    Case Else
    Call Err.Raise(5, , Error$(5) & " - Durée non gérée.")
     
    End Select
     
    End Sub
    Alors l'idée serait quand je renseigne le champ periode et le champ date, les champs du sous fromulaire se renseignent automatiquant, c'est a dire :

    si le champ date a la valeut 01/01/2019 et que le champ duree a la valeur 24, les champs du sous formulaire [duree1] aura la valeur 01/01/2020 et le champ [duree2] aura la valeur 01/01/2021, il s'arretra la puisque on parle de 24 mois biensur.

    j'espere avoir été clair, n'hesitez pas a poser des questions.

    Merci.

    Cordialement.

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Salut , brut de décoffrage... a affiner suivant tes besoins et et nom de champs.
    ++

    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
     
     
    Option Compare Database
    Option Explicit
     
    Private Sub Modifiable2_AfterUpdate()
     
    Select Case Me.Modifiable2
    Case "12"
    Forms.frm_duree.SFRM_DUREE.Form.duree1 = DateAdd("m", Me.Modifiable2, (Me.Date))
    Case "14"
    Forms.frm_duree.SFRM_DUREE.Form.duree1 = DateAdd("m", 12, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree2 = DateAdd("m", Me.Modifiable2 - 12, (Me.Date))
     
    Case "18"
    Forms.frm_duree.SFRM_DUREE.Form.duree1 = DateAdd("m", 12, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree2 = DateAdd("m", Me.Modifiable2 - 14, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree3 = DateAdd("m", Me.Modifiable2, (Me.Date))
    Case "24"
    Forms.frm_duree.SFRM_DUREE.Form.duree1 = DateAdd("m", 12, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree2 = DateAdd("m", Me.Modifiable2 - 14, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree3 = DateAdd("m", Me.Modifiable2 - 18, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree4 = DateAdd("m", Me.Modifiable2, (Me.Date))
    Case "36"
    Forms.frm_duree.SFRM_DUREE.Form.duree1 = DateAdd("m", 12, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree2 = DateAdd("m", Me.Modifiable2 - 14, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree3 = DateAdd("m", Me.Modifiable2 - 18, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree4 = DateAdd("m", Me.Modifiable2 - 24, (Me.Date))
    Forms.frm_duree.SFRM_DUREE.Form.duree5 = DateAdd("m", Me.Modifiable2, (Me.Date))
    Case Else
    Call Err.Raise(5, , Error$(5) & " - Durée non gérée.")
     
    End Select
     
     
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour james68,

    Merci pour la réponse, j'ai modifié le code selon l'existant que j'ai sur mes formulaires, alors une fois executé j'ai le message d'erreur suivant :

    Erreur d'exexution '5'
    Argument ou appel de procédure incorrect-Durée non gérée.

    Par contre, quand j'enleve ce bout de code, il ne se passe rien.

    Merci.

    cordialement.

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Re poste ton code modifié et dis nous sur quelle ligne ca plante STP
    ++

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Voici le code :


    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
    Option Compare Database
    Option Explicit
     
    Private Sub duree_AfterUpdate()
     
    Select Case Me.duree
    Case "12"
    Forms.f_projet.SFRM_f_duree.Form.duree1 = DateAdd("m", Me.duree, (Me.date_))
    Case "14"
    Forms.f_projet.SFRM_f_duree.Form.duree1 = DateAdd("m", 12, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree2 = DateAdd("m", Me.duree - 12, (Me.date_))
     
    Case "18"
    Forms.f_projet.SFRM_f_duree.Form.duree1 = DateAdd("m", 12, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree2 = DateAdd("m", Me.duree - 14, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree3 = DateAdd("m", Me.duree, (Me.date_))
    Case "24"
    Forms.f_projet.SFRM_f_duree.Form.duree1 = DateAdd("m", 12, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree2 = DateAdd("m", Me.duree - 14, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree3 = DateAdd("m", Me.duree - 18, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree4 = DateAdd("m", Me.duree, (Me.date_))
    Case "36"
    Forms.f_projet.SFRM_f_duree.Form.duree1 = DateAdd("m", 12, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree2 = DateAdd("m", Me.duree - 14, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree3 = DateAdd("m", Me.duree - 18, (Me.date_))
    Forms.f_projet.SFRM_f_duree.Form.duree4 = DateAdd("m", Me.duree - 24, (Me.date_))
    Forms.f_projet.SFRM_d_duree.Form.duree5 = DateAdd("m", Me.duree, (Me.date_))
    Case Else
    Call Err.Raise(5, , Error$(5) & " - Durée non gérée.")
     
    End Select
     
     
    End Sub
    J'ai le message d'erreur sur la dernière ligne, elle d'ailleurs surligné en jaune et quand je l'enlève, il ne se passe rien.

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    la 29 ?

  7. #7
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    oui

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    je n'utilise pas de maniere generale la fonction err.raise.
    tu peux peux etre gerer ca par une msgbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Ret
    Ret = MsgBox("Durée non gerée !", vbCritical, "titre de l'appli")
    d'autre part si tu as limitée a la liste ta liste déroulante de durée, tu n'as pas besoin de gérer l'erreur ( les valeurs prédefinis pour ce combo : 12,14,18,24,36)
    ++

  9. #9
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    oui effectivement ma liste est limité a 36, je ne sais pas si c'est vraiment nécessaire, en même temps en suppriment cette ligne, rien ne se passe.

  10. #10
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    maintenant avec cette ligne, même si la durée existe dans la liste j'ai quand même le message que comme quoi la durée n'est pas gérée.

  11. #11
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    quelles sont tes références actives dans le VBA?

  12. #12
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    D'autre part Renomme ton champ "date"...
    Par exemple : Saisie_de_date

  13. #13
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Une capture d'écran des références.

    reference.docx

  14. #14
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Nom : duree.jpg
Affichages : 153
Taille : 73,8 Ko

  15. #15
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Désolé d'être dans le négatif, mais ca ne marche toujours pas, j'ai coché les références telle que c'est sur l'image que vous m'avez envoyer, rien.

  16. #16
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    et en changeant le nom de ton champ date ?

  17. #17
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    j'ai changé par période et toujours rien, le problème n'est pas dans le fait qu'il s'agit d'un sous formulaire.

  18. #18
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Possible.
    le form principal et le sous formualire sont il lié ( champ pere fils )
    as tu le droit d'ecrire dans le sous formulaire.
    quel est le message exact d'erreur ?
    a plus

  19. #19
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Oui, ils sont bien liés, voila c'est tout le problème, en gardant la dernière ligne, c'est a dire la ligne 29 a tout les coups j'ai message "durée non gerée" et rien ne se passe, le pire quand je l'enlève rien ne se passe aussi.

  20. #20
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    as tu la possibilité de transmettre tes sources ?
    ca sera peut etre plus simple et plus rapide...
    ++

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2015, 16h53
  2. [AJAX] remplissage des champs a partir d'une donne dans un autre champ
    Par zied.ellouze dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/02/2009, 10h07
  3. Réponses: 13
    Dernier message: 06/08/2008, 14h36
  4. Comment ajouter des champs a partir des valeurs d'un autre champ ?
    Par zerkz dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/05/2007, 12h05
  5. Réponses: 4
    Dernier message: 25/09/2006, 14h36

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