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 :

Bloquer la modification d'un enregistrement dans un formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut Bloquer la modification d'un enregistrement dans un formulaire
    Bonjour,

    Je suis stagiaire et doit développer une base de données. Je suis complètement novice en Access et je suis confrontée à un petit problème. J'ai résolu quelques uns d'entre eux auparavant grâce aux réponses fournies par ce forum et j'espère résoudre celui-ci en y participant.

    J'ai un formulaire avec plusieurs champs et chaque collaborateur du service où je travaille devra remplir ses champs. Un enregistrement (ligne complète) correspond à une activité réalisée dans la journée. A chaque début d'enregistrement, le collaborateur doit entrer la date du jour. Je souhaiterai faire en sorte que les enregistrements (lignes) de la semaine ne soient plus modifiables une fois que ladite semaine est terminée. Comment puis-je faire?

    Merci d'avance pour vos réponses

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    La méthode la plus simple que j'ai trouvée c'est de changer la propriété Locked pour chacun des champs concernés sur l'événement Current (sur activation en français).

    Voici un exemple de code sur l'événement sur activation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim estBloque as boolean
     
    if not isnull(me.TaDate) or not isEmpty(me.TaDate) then
        estBloquee=format(me.TaTadate, "yyyy\-ww") <Format(date(),"yyyy\-ww")  'Équation booléene, retourne vrai ou faux
      else
        estBloquee=false
     
    end if
     
    'autant de ligne que de champ de saisie
    me.TonChamp1.locked=estBloque
    me.TonChamp2.locked=estBloque
    me.TonChamp3.locked=estBloque
    A+

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour cette réponse rapide.

    Malheureusement je ne trouve pas l'évènement Current dans mon onglet Event. Je possède "On click", ou "Before Update".. mais pas current. Par contre j'ai bien Locked dans l'onglet All de ma feuille de propriété du champ en question.

    Autre point, j'ai essayé d'adapter ton code à mon cas précis :

    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
    dim estBloque as boolean
     
    if not isnull(me.Week) or not isEmpty(me.Week) then
        estBloquee=format(me.Week, "yyyy\-ww") <Format(date(2013/07/16),"yyyy\-ww")  'Équation booléene, retourne vrai ou faux
      else
        estBloquee=false
     
    end if
     
    'autant de ligne que de champ de saisie
    me.Week.locked=estBloque
    me.FirstName_Name.locked=estBloque
    me.ActivityType.locked=estBloque
    me.ProjectType.locked=estBloque
    me.Customer.locked=estBloque
    me.ProjectName.locked=estBloque
    me.Activity.locked=estBloque
    me.Task.locked=estBloque
    me.Workload.locked=estBloque
    me.WBS.locked=estBloque
    me.Upscope Name.locked=estBloque
    me.Comments.locked=estBloque
    J'ai changé le TaDate par mon champ Week qui contient la date du jour saisie par le collaborateur. Et j'ai mis la date du jour dans Format(Date())
    Par contre, je ne sais pas quel format il faut saisir... Et autre question, est-il possible de faire en sorte que la date de référence se modifie tous les jours en fonction de la date du jour? (je ne sais pas si ma question est claire..)

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Il s'agit d'un événement du formulaire, pas d'un contrôle en particulier.

    En angalis cela doit être On Current.

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Ce sujet m'interesse à peu de chose que moi j'ai un formulaire avec deux sous-formulaire presque identiques. Ces deux sous-forulaires sont des formulaires de pointage, avec en en-tête de lignes les différentes affaires sur lesquelles l'employé peut pointer, en en-tête de colonnes les jours de la semaine. Pour ajouter un pointage, l'employé double-clique sur les cases situées à l'intersection de ces lignes et de ces colonnes pour rentrer son pointage. Ce pointage se fait par mois.

    J'aimerais qu'à la fin du mois l'employé ne puisse plus ajouter de pointage.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    À priori, marg0t, il suffit que tu mettes le code sur l'événement Sur Activation (on current) de ton sous-formulaire et que tu code un truc du genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim estBloque as boolean
     
    if not isnull(me.TaDate) or not isEmpty(me.TaDate) then
        estBloquee=month(me.TaTadate)<month(date())  'Équation booléene, retourne vrai ou faux
      else
        estBloquee=false
     
    end if
     
    'autant de ligne que de champ de saisie
    me.TonChamp1.locked=estBloque
    me.TonChamp2.locked=estBloque
    me.TonChamp3.locked=estBloque

Discussions similaires

  1. [AC-2000] Comment bloquer le changement d'enregistrement dans un formulaire
    Par gravier3000 dans le forum IHM
    Réponses: 1
    Dernier message: 30/11/2010, 17h41
  2. Réponses: 1
    Dernier message: 01/08/2010, 16h52
  3. Modification d'un enregistrement dans une table
    Par cyberspace7119 dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/06/2007, 11h02
  4. Réponses: 10
    Dernier message: 12/11/2006, 12h06
  5. Réponses: 17
    Dernier message: 17/07/2006, 17h27

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