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 :

Comment maintenir le curseur sur un seul champ [AC-2013]


Sujet :

Access

  1. #1
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut Comment maintenir le curseur sur un seul champ
    Bonsoir membres du forum,
    Comment positionner par code le curseur sur une zone de texte
    d'un formulaire
    dépendant d'une table.
    De sorte que le code derrière cette
    zone de texte, permete d'enregistrer
    des données dans un autre champ.
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pour la partie :

    Comment positionner par code le curseur sur une zone de texte d'un formulaire dépendant d'une table.
    si tu veux passer le nom du champ en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.Controls(NomTonChamp).setFocus
    où NomTonChamp est une variable contenant le nom du champ.

    Si ton contrôle est toujours le même :

    De sorte que le code derrière cette zone de texte, permette d'enregistrer des données dans un autre champ.
    Là aucune idée de ce que tu veux faire, peut-être un exemple aiderai.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonsoir marot_r,
    Voici la capture des zones de texte concernées.

    Nom : Capture1.JPG
Affichages : 412
Taille : 34,5 Ko

    Le code de la commande qui devrait renvoyer les données dans le champ (zone de texte) "MontantPartHeritagePercu" de la première ligne à la dernière.

    Nom : Capture2.JPG
Affichages : 407
Taille : 12,2 Ko

    Au depart, j'ai essayé le code suivant qui ne marche pas tel que souhaité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CmdMAJ_Part_Montants_Click()
    Me.Controls("IDMontantpartager").SetFocus
    MiseAJourMontantPartagés
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
    End Sub
    Ensuite, le suivant qui marche mais à la fin il y a un message d'erreur:

    Nom : Capture3.JPG
Affichages : 413
Taille : 109,4 Ko
    Nom : Capture4.JPG
Affichages : 404
Taille : 32,0 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub IDMontantpartager_GotFocus()
    Me.Controls("IDMontantpartager").SetFocus
    MiseAJourMontantPartagés
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
    End Sub
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Si j'ai bien compris, vous voudriez marquer une pause ligne suivante montant = 0
    Mais pour faire quoi ? Saisir le montant ?
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonjour hyperion13,
    Quelle joie de vous croiser,
    En effet, j'aimerais que le code s'arrête de défiler au dernier enregistrement du sous formulaire en cours

    Forms![FrmTblGestionParticuliereChaqueHeritierEMS]![Tbl_PartageGlobalPartMontantSesHeritiersSFrm].Form![IDMontant_partager]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub IDMontantpartager_GotFocus()
    Me.Controls("IDMontantpartager").SetFocus
    MiseAJourMontantPartagés
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
    If IsNull(Me.IDMontantpartager) Then Exit Sub
    End Sub
    Message d'erreur:

    Nom : Capture5.JPG
Affichages : 387
Taille : 106,0 Ko

    Pièce jointe
    Cordialement.
    Fichiers attachés Fichiers attachés
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  6. #6
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Je vais mieux reformuler ma question Post#4
    Vous voudriez parcourir du premier au dernier les champs MontantHeritagePercu dont le montant est égal à zéro.
    Mais pourquoi faire ? Vous arrêter à chaque champ dont le montant est égal à zéro pour saisir un montant ? Une autre manip ?
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  7. #7
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Vous voudriez parcourir du premier au dernier les champs MontantHeritagePercu dont le montant est égal à zéro.
    1°) Il y a du code derrière le champ IDMontantpartager. Si ce champ en question reçoit le focus,
    son code me permet d'enregistrer la part de montant de chaque héritier dans le champ MontantPartHeritagePercu au cas où le montant est à 0,00 FCFA.

    J'ai mis toutes les lignes du champ MontantPartHeritagePercu à 0,00 FCFA.

    Nom : Capture6.JPG
Affichages : 388
Taille : 83,0 Ko
    Nom : Capture7.JPG
Affichages : 385
Taille : 36,2 Ko

    Mon objectif est qu'une fois la part de montant de chaque héritier introduit dans le champ MontantPartHeritagePercu, le code doit s'arrêter.

    Mais pourquoi faire ? Vous arrêter à chaque champ dont le montant est égal à zéro pour saisir un montant ? Une autre manip ?
    Non. Voir mon explication ci dessus.
    Vous pourriez tester ma pièce jointe en vidant le champ MontantPartHeritagePercu.
    Espérant que vous ayez compris,
    Merci et à bientôt.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Je pense que ce que vous tentez de réaliser est de l'ordre de l'impossible, enfin je pense.
    De plus marot_r vous a donné la formule de répartition des parts ici.
    Il suffirait de créer 3 "function" pour calculer la part qui revient selon que l'on soit mère, soeur et frère et d'utiliser une qry Update.
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Je vous rappelle qu'il s'agit du code suivant dans cette discussion.
    Comment faire en sorte qu'il s'arrete après la derniere ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub IDMontantpartager_GotFocus()
    Me.Controls("IDMontantpartager").SetFocus
    MiseAJourMontantPartagés
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
    If IsNull(Me.IDMontantpartager) Then Exit Sub
    End Sub
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  10. #10
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    N'y-a-t-il pas, selon votre approche, un problème d'itération ?
    En l'état, un évènement (L2) déclenche une sub (L1) qui ce poursuit par l'exécution d'une autre sub (L3), enfin je pense. Une fois la sub (L3) exécutée vous lui demandez d'aller à la ligne suivante (L4) puis dernière ligne (L5).
    Hypothétiquement, on peut penser que le 1er champ MontantPartHeritagePercu dont le montant est égal à zéro sera mis à jour avec votre sub (L3). Pour le second jusqu'au dernier, j'ai un gros doute. Je me trompe peut-être.
    Je ne pense pas que l'on puisse combiner L4 et L5 dans votre sub. Peut-être confondez-vous avec rst.MoveLast rst.MoveFirst
    Je pense que la seule issue serait un FOR ... NEXT (itération).
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut Une solution trouvée
    Bonjour hyperion13,
    bonjour membres du forum,

    Je viens de trouver une solution.
    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
     
    Private Sub IDMontantpartager_BeforeUpdate(Cancel As Integer)
        If Not ControleChampsVides Then Cancel = True
    End Sub
     
    Private Sub IDMontantpartager_GotFocus()
    If ControleChampsVides = False Then     'Au moins 1 champs obligatoire est vide
    Exit Sub
     
    Me.Controls("IDMontantpartager").SetFocus
    MiseAJourMontantPartagés
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
     
    End If
    End Sub
     
    Function ControleChampsVides() As Boolean
    On Error Resume Next
     
    'Contrôle de la zone de IDMontantpartager
    If IsNull(Me.IDMontantpartager) Then
        ControleChampsVides = False
        MsgBox "ATTENTION !" & vbCrLf & "Aucune donnée saisie.", vbExclamation + vbOKOnly, "Entrez des Données"
        If Me.IDMontantpartager = Null Then Stop
        '=====>>> DROPDOWN est préférable à Sendkeys et de toute façon n'est utile que pour les combobox, pas pour les zones de texte
        'Me.IDMontantpartager.Dropdown  **** Pour dérouler le combobox à l'aide de la méthode DROPDOWN
        'SendKeys "{F4}"      '*** Pour dérouler le combobox à l'aide de l'envoi de touche clavier (F4)
     
    Else
        ControleChampsVides = True
    End If
    End Function
    A tester puis donnez votre avis.
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  12. #12
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Désolé, mon code ne marche pas.
    hyperion13,
    Je reviens à vous car je n'avais pas prêté attention aux dernières lignes de vos explications:
    hyperion13,
    Peut-être confondez-vous avec rst.MoveLast rst.MoveFirst
    Je pense que la seule issue serait un FOR ... NEXT (itération).
    afin que vous m'aidiez avec la méthode
    Je pense que la seule issue serait un FOR ... NEXT (itération)
    .
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  13. #13
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Vous voulez bloquer la saisie dans un champ d'un formulaire continu à partir du moment où une condition est remplie ou n'est pas remplie.

    Ce mode de fonctionnement n'est pas très orthodoxe et peut rendre l'utilisation d'un point de vue comportement, incompréhensible s'il n'y a pas d'explication dans un petit en-cas au-dessus ou en dessous sous forme de message à l'égard de l'utilisateur.

    Imaginez une feuille de calcul Excel, vous pouvez difficilement interdire à un utilisateur d'aller sur une autre cellule alors qu'il n'a pas fini la saisie dans celle sur laquelle il est en train d'écrire. Mais cela reste possible.

    Chaque fois que vous insérez une ligne dans le sous-formulaire, celle-ci possède un identifiant unique et il est donc possible de garder le FOCUS sur la ligne en conséquence d'une condition que vous émettez sur l'événement BeforeUpdate().

    Pourriez-vous s'il vous plaît être un peu plus explicite dans l'exposé de votre souhait ?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  14. #14
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonsoir argyronet,
    Quel honneur pour moi car j'ai vu plein de tutoriels de formation que vous avez mis sur developpez.net.
    Bref, voici ce que je recherche:

    - J'ai par exemple 13 enregistrements sur le sous formulaire continu
    [Forms]![Frm_Tbl_Gestion_ParticuliereChaqueHeritierEMS]![Frm_Tbl_Partage_Taux_Ses_Heritiers].[Form]![IDMontantpartager].
    Donc je souhaite que le curseur(la sourie) parcoure du 1er au 13e enregistrement
    seulement à partir de la zone [IDMontantpartager] dès la réception du focus puis quitte la procédure
    au 13e enregistrement
    en évitant les messages d'erreurs.

    - Point final.
    cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  15. #15
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Il faudrait revenir sur le fil de discussion d'origine qui est .
    Pour info, la formulation de marot_r est la bonne formulation dans le cas cité pour calculer la quote-part de chaque héritier. Ilank, désolé pour toi, se plante.
    Dans votre Post#6, capture n°2 M. Sanogo et ses 13 héritiers.
    1 form principal :
    - pourquoi "Sélection ID_MontantAPartager est-il une combobox et non une textbox ? Sauf erreur, après règlement des dettes, frais de succession , etc. le montant à partager est figé où quelque chose m'échappe.
    2 onglet Partage_taux_heritiers et son subform :
    - quelle raison de la présence de la combobox IDMontantAPartager ? Est déjà présente dans le form principal !
    - normalement c'est au moment où vous allez déclarer un décès à des fins de partage que vous allez compléter la liste des héritiers et c'est à ce moment là que vous allez devoir sélectionner le degré de l'héritier, la combobox id_LienDeParenté. Donc en toute logique c'est à partir de la mise à jour de cette combobox que l'on devrait calculer la part qui revient à l'héritier textbox MontantPartHeritagePercu.
    - pour cela il faut déterminer avant le lien de parenté de tous les héritiers puisque les quotités ou parts successorales varient selon les règles de votre pays.

    Dans le fil de discussion actuel nous sommes hors contexte. A priori vous avez déjà déclaré les héritiers sans pour autant avoir calculé la part successorale qui leurs est due. Donc là autant passer par une qry de mise à jour.
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  16. #16
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonsoir hyperion13,
    Je rappelle que j'ai pu résoudre la discussion ici https://www.developpez.net/forums/d2...age-cas-2-3-a/

    En ce moment, ce qui m'intéresse c'est le mouvement que le curseur doit effectuer sur la combobox IDMontantpartager tel qu'expliqué
    Donc je souhaite que le curseur(la sourie) parcoure du 1er au 13e enregistrement
    seulement à partir de la zone [IDMontantpartager] dès la réception du focus puis quitte la procédure
    au 13e enregistrement en évitant les messages d'erreurs.
    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
     
    Private Sub IDMontantpartager_BeforeUpdate(Cancel As Integer)
        If Not ControleChampsVides Then Cancel = True
    End Sub
     
    Private Sub IDMontantpartager_GotFocus()
    If Not ControleChampsVides = False Then     'Au moins 1 champs obligatoire est vide
    'Exit Sub
     
    Me.Controls("IDMontantpartager").SetFocus
     
    MiseAJourMontantPartages
     
    DoCmd.GoToRecord , , acNext
    DoCmd.GoToRecord , , acLast
    Exit Sub
    End If
    End Sub
     
    Function ControleChampsVides() As Boolean
    On Error Resume Next
     
    'Contrôle de la zone de IDMontantpartager
    If IsNull(Me.IDMontantpartager) Then
        ControleChampsVides = False
        MsgBox "ATTENTION !" & vbCrLf & "Aucune donnée saisie.", vbExclamation + vbOKOnly, "Entrez des Données"
        If Me.IDMontantpartager = Null Then Stop
        '=====>>> DROPDOWN est préférable à Sendkeys et de toute façon n'est utile que pour les combobox, pas pour les zones de texte
        'Me.IDMontantpartager.Dropdown  **** Pour dérouler le combobox à l'aide de la méthode DROPDOWN
        'SendKeys "{F4}"      '*** Pour dérouler le combobox à l'aide de l'envoi de touche clavier (F4)
     
    Else
        ControleChampsVides = True
    End If
    End Function
    Nom : Capture8.JPG
Affichages : 354
Taille : 188,5 Ko

    Vous pouvez le tester sur la pièce jointe.
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonsoir,
    si j'ai bien compris (car l'application est encore une vraie usine à gaz ! j'ai eu du mal à m'y retrouver), le but serait de mettre à jour le champ MontantPartHeritagePercu sur clic du bouton CmdMAJ_Part_Montants, dans ce cas, il suffit de lire chaque enregistrement (.Edit) du sous-formulaire Frm_Tbl_Partage_Taux_Ses_Heritiers et de le mettre à jour (.Update) avec la fameuse boucle d'hyperion13 (FOR ... NEXT), mais ici on utilisera Do ... Loop:
    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 CmdMAJ_Part_Montants_Click()
    With Me.Recordset
        .MoveFirst
        Do Until .EOF
            .Edit
            Select Case .[id_LienDeParente]
            Case "2"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML(.IDMontantpartager, .id_LienDeParente)
            Case "3"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML_PartFrere(.IDMontantpartager, .id_LienDeParente)
            Case "4"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML_PartSoeur(.IDMontantpartager, .id_LienDeParente)
            End Select
            .Update
            .MoveNext
        Loop
    End With
    End Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonjour tee_grandbois,
    bonjour hyperion13 et argyronet, marot_r,
    et toute la famille developpez.net,
    Après quelques essais, le code de tee_grandbois marche bien.
    J'y ai ajouté deux lignes de code. Pour le moment pas de message d'erreur.

    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
     
    Private Sub CmdMAJ_Part_Montants_Click()
    'MiseAJourMontantPartages
    'Me.IDMontantpartager.SetFocus
    'DoCmd.GoToRecord , , acLast
    With Me.Recordset
        .MoveFirst
        Do Until .EOF
            .Edit
            Select Case .[id_LienDeParente]
            Case "2"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML(.IDMontantpartager, .id_LienDeParente)
            Case "3"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML_PartFrere(.IDMontantpartager, .id_LienDeParente)
            Case "4"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_SML_PartSoeur(.IDMontantpartager, .id_LienDeParente)
            Case "6"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_HDK_PartFille(Me.IDMontantpartager, Me.id_LienDeParente)
            Case "5"
                .MontantPartHeritagePercu = F_RamenantMontantParticulierMembreFEMS_HDK_PartFils(Me.IDMontantpartager, Me.id_LienDeParente)
                End Select
            .Update
            .MoveNext
        Loop
    End With
    End Sub
    Mis en commentaire les autres codes qui pourrais générer des erreurs:
    ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MiseAJourMontantPartages
    .
    Merci merci merci infiniment.
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    Mis en commentaire les autres codes qui pourrais générer des erreurs:
    ControleChampsVides
    MiseAJourMontantPartages
    et qui ne servaient absolument à rien dans le code fourni
    j'aurais dû préciser que mon code annulait et remplaçait totalement l'ancien
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  20. #20
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut,
    Citation Envoyé par tee_grandbois Voir le message
    bonjour,
    Je complète les remarques :
    5 qry qui ont la même structure à un détail près, le critère placé sur LienDeParente, alors qu'une seule sans critère suffirait.
    D'autant plus que LienDeParente se retrouve sous une autre orthographe dans les 5 fonctions, alors qu'une seule suffirait avec un SELECT ... CASE, pour calculer le montant de la part d'héritage de chacun des héritiers.
    Tout un chapitre !
    "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
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Comment maintenir une application sur le bureau ?
    Par Philia dans le forum Composants VCL
    Réponses: 22
    Dernier message: 25/11/2007, 15h09
  2. [Requete] qui n'affiche pas les doublons mais sur un seul champs
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/12/2006, 14h57
  3. [9i, débutant] Clause DISTINCT sur un seul champ
    Par JYves dans le forum Oracle
    Réponses: 11
    Dernier message: 06/09/2006, 17h08
  4. [TChart] Comment utiliser le curseur sur une courbe ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/09/2005, 16h49
  5. Distinct sur un seul champ...
    Par Noodles dans le forum Langage SQL
    Réponses: 16
    Dernier message: 04/01/2005, 09h36

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