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 :

Gestion des positions des militaires admis en retraite


Sujet :

Access

  1. #21
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Gestions des positions des militaires admis en retraite
    Bonjour !
    le probleme du point 1 est résolu. quand au point 2, il n'était pas question de changer le message mais le titre [B]Microsoft Access[B].
    Toujours dans le cadre l'amélioration de mon travail, Comme le laisse apparaitre le formulaire suivant,

    Nom : Formulaie1.jpg
Affichages : 286
Taille : 101,5 Ko

    Mr TIOPI SEBASTIEN étant officier, la date position de "Retraite définitive" devait être le 09/07/2014. C’est-à-dire la date de "Mobilisable" + 3 ans alors que présentement c’est la date du jour de traitement qui apparait. Pour un sous-officier de la même position, + 2ans donnerait 09/07/2013. C’était le but que j’ai voulait atteindre de facon automatique.
    DEUXIEME PREOCCUPATION.
    Pouvez-vous m'aider à écrire un code VBA permettant que le changement de Position "Mobilisable ou Maintenu en service" par la Position "Retraite définitive" coche automatiquement la "case à cocher" Ancienne Position, Ceci pour éviter qu’un militaire occupe dans un même état issu de la requête "Contacts_CpositionRetaite" deux positions comme l’illustre l’état suivant ?

    Nom : Etat1.jpg
Affichages : 257
Taille : 23,2 Ko

    comme je vous ai dit au début, je suis un néophyte en VBA

    Cordialement

  2. #22
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Pour :
    quand au point 2, il n'était pas question de changer le message mais le titre [B]Microsoft Access[B].
    Je te conseille de prendre l'habitude de rechercher l'aide par mot-clés avec F1. En sélectionnant MsgBox et appuyant sur F1, tu verras l'aide pour les arguments de cette fonction. Le troisième argument permet de modifier le titre pour les boîtes de dialogue popup. Attention, quand on a plus de 2 arguments, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variable = MsgBox ("Tonmessage",EtatBouton,"Titre")
    EDIT : Réponse au point 2 de ton dernier message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Rajouter la fonction suivante :
    'Fonction qui retourne l'incrémentation de l'âge légal selon le corps
    Public Function PeriodeLegal(parCorps As Integer) As Integer
    Select Case parCorps
        Case 1 'Cas Officier
            PeriodeLegal = 3
        Case 2 'Cas sous-officier
            PeriodeLegal = 2
        Case Else
    End Select
    End Function
    qui va renvoyer la durée légale entre 2 positions selon le corps (officier ou sous-officier).
    Ensuite, modifier la fonction de changement de position du retraité :
    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
    'Changement de position du retraité
    Private Sub btnchangeposition_Click()
    Dim MarqueChange As Boolean
    Dim DateDernierChange As Date, DateNllePosition As Date
    Dim MaxPos As Integer
     
    'Trouver la position maximale du retraité dans la table et incrémenter
    MaxPos = DMax("[Position]", "[CpositionRetraite]", "[RefContact]=" & Me.RefContact) + 1
    'Trouver la dernière date de changement de position
    DateDernierChange = DMax("[DatePosition]", "[CpositionRetraite]", "[RefContact]=" & Me.RefContact)
    Reponse = MsgBox("Dernier changement " & DateDernierChange & " Date du jour = " & Date)
    'Vérifier selon le corps si la période minimum correspondant au corps par rapport à la date du jour est respecté
    'MsgBox (VerifDernierChange(Me.TxtRefCorps, DateDernierChange, Date))
    MarqueChange = (VerifDernierChange(Me.TxtRefCorps, DateDernierChange, Date))
    'Si la période par rapport à la date du jour est respectée
    If MarqueChange Then
        MsgBox ("Date de changement prévu =" & DateAdd("yyyy", PeriodeLegal(Me.TxtRefCorps), DateDernierChange))
        DateNllePosition = DateAdd("yyyy", PeriodeLegal(Me.TxtRefCorps), DateDernierChange) - 1
        'Ajouter le nouveau statut du retraité avec la nouvelle date qui de toutes les façons sera <= à la date du jour
        strsql = "INSERT INTO CpositionRetraite ( RefContact, [Position], DatePosition )" _
                & " VALUES (" & Me.RefContact & "," & MaxPos & ",#" & Format(DateNllePosition, "yyyy/mm/dd") & "#)"
    'Exécuter la requête ajout
        CurrentDb.Execute strsql, dbfailonerror
        Me.Requery
        Me.SF_PositionRetraite.Form.Requery
    Else
        'Sinon
        MsgBox "La période depuis le dernier changement de position par rapport à aujourd'hui n'est pas respectée !"
    End If
     
    End Sub
    Modifier la date de la nouvelle position par la dernière date augmentée de la période légale (dans la requête INSERT)

    Il resterait le point 3 sur ton histoire d'état.

    Cordialement,

  3. #23
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Gestions des positions des militaires admis en retraite
    Bonjour !
    Après votre coup de main, les problèmes soulevés ont trouvé solution. il ne reste plus que le problème de l'Etat soulevé plus haut et dont vous avez fais mention.
    Cordialement

  4. #24
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Donc, il faudrait rajouter ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        'Trouver la valeurs de la position précédente
        PositionPrecedente = MaxPos - 1
        'Créer la requête mise à jour selon les 2 critères
        strsql = " UPDATE CpositionRetraite SET AnciennePosition = -1" _
                & " WHERE RefContact =" & Me.RefContact & " AND Position =" & PositionPrecedente
        CurrentDb.Execute strsql, dbfailonerror
        Me.Requery
        Me.SF_PositionRetraite.Form.Requery
    après la ligne 25 du code du bouton pour le changement de position du retraité.

    Cordialement,

  5. #25
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Gestions des positions des militaires admis en retraite
    Bonjour !
    le Problème du même nom dans 2 positions est résolu mais a crée un autre. on ne peut plus avoir l'historique des positions successivement occupées par un militaire comme l'illustre le résultat ci-après obtenu.

    Nom : Formulaire2.jpg
Affichages : 179
Taille : 102,5 Ko

    Si tout pouvait se jouer sur la case à cocher. je m'explique: l'ajout d'une nouvelle position coche automatiquement la case à cocher de la précédente position, je crois que l'historique des positions de chaque militaire serait maintenu et l'appartenance la fois à 2 positions résolu aussi par une simple requête. nous ne sommes pas loin du but mais que faire avec mon niveau minable en VBA ? tout dépend encore de vous.
    Cordialement

  6. #26
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Gestions des positions des militaires admis en retraite
    Bonjour !
    Dans l'attente d'une réaction de votre part, j'ai fais une requête de mise à jour qui transformation en sql a donné le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      strsql = " UPDATE CpositionRetraite SET CpositionRetraite.PositionChanger = 1" _
               & "  WHERE (((CpositionRetraite.RefPositenRetraite)<>3));"
    en remplaçant les lignes 4 et 5 du code précédent que vous avez proposé par celui-là, le problème posé plus haut a été résolu
    Mon application marche comme souhaité. Merci de votre aide et surtout de votre disponibilité. à très bientot pour une autre discussion si Dieu le veux

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Insérer des textes à des positions variables
    Par fb62840 dans le forum VBA Word
    Réponses: 5
    Dernier message: 24/09/2012, 09h50
  2. Gestion automatique des positions des noeuds dans un graph
    Par maissaab dans le forum Général Python
    Réponses: 7
    Dernier message: 30/04/2011, 22h32
  3. Réponses: 3
    Dernier message: 30/06/2009, 19h16
  4. personnaliser des positions des buttons
    Par adoumaz dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 05/09/2007, 15h09
  5. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 14h21

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