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 :

Contenu 1° contrôle interdisant saisies autres contrôles dont listes déroulantes


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut Contenu 1° contrôle interdisant saisies autres contrôles dont listes déroulantes
    Bonjour,
    Mon problème toujourds profane en ACCESS 2003, reste que dans mon formulaire, je veux que la valeur prise par un 1° contrôle (données précises déja rentrées dans la table), interdise à celui qui saisit tout accès ou modif dans les autres contrôles. Comme ces autres contrôles sont des listes déroulantes,comment les bloquer, y empêcher toute saisie, ou interdire l'accès à la condition naturellement prise par le 1° contrôle. Voici le code que j'ai réussi à faire en suivant quelques conseils, mais ça ne marche pas, ma liste déroulante reste toujours fonctionnelles.
    Dans le code ci-dessous, je cherche à exprimer qui si le contrôle ECOLE prend la valeur "Ajout école seulement", déjà enregistrée dans le table donc qui apparaît en faisant défiler les enregistrements dans le formulaire, et bien qu'aucune saisie ne soit possible dans le contrôle fonctionnement (liste déroulante) :

    Private Sub ECOLE_BeforeUpdate(Cancel As Integer)

    If Me.ECOLE = "Ajout école seulement" Then
    Me.ECOLE.Locked = True
    Me.Fonctionnement.Locked = False
    Else
    Me.ECOLE.Locked = True
    Me.Fonctionnement.Locked = True
    End If

    Merci d'essayer de m'apporter une solution. Cordialement

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Points : 88
    Points
    88
    Par défaut
    Il y a un contrôle du genre ".Enabled" qui empêche toute modification des valeurs (la case est grisée), a mettre a True/False selon les situations. C'est ça que tu cherches ?

  3. #3
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour....

    Sur l'événement "Sur activation" du formulaire...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_Current()
    'Si la valeur du champ "Ecole" égale 'Ajout école seulement'..
    If Me.Ecole.Value = "Ajout école seulement" Then
        '..alors je verrouille ce champ anisi que le ZdL
        Me.Ecole.Locked = True
        Me.Fonctionnement.Locked = True
    'Sinon.....
    Else
        'Je déverrouille les deux champs.....
        Me.Ecole.Locked = False
        Me.Fonctionnement.Locked = False
    End If
    End Sub
    ......
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut contenu Ctrl texte bloquant saisies dans un autre
    Merci pour ce code,
    1.appliqué, effectivement ça bloque le ctrl "fonctionnement" au poil, plus rien ne déroule, par contre et ce n'est pas ce qui m'arrange ça bloque aussi le ctrl ECOLE contenant "Ajout école seulement", mais j'ai l'impression que vous l'avez voulu ainsi. Or ce que je cherche c'est ce blocage effectivemlent si le ctrl ECOLE affiche"Ajout école seulement", mais aussi que celui qui saisit puisse effacer ce contenu, le remplacer par le nom d'un nouvelle école, donc différent de"Ajout école seulement", libérant ainsi le blocage et permettant la saisie dans le Ctrl Fonctionnement. Soyez sympa de me dire ce qu'il faut chahger dans le code pour que le ctrl ECOLE ne soit nullement bloqué lui. C'est "Locked " de "Me.Ecole.Locked = True" qu'il faut enlever ?
    2. j'ai d'autres listes déroulantes dans le formulaire dans le genre de Fonctionnement, la condition restant toujours la même pour tous, est-ce que je peux ajouter des "then, then, then...", "else, else, else, ..." à la file dans le même code ou bien est-ce que je dois le réécrire à chaque fois pour chaque liste déroulante que je veux interdire ? Vous m'avez déjà bien rendu service, et comme je suis toujours aussi nul ça m'arrangerait si vous apportiez une solution au 1. Merci et cordialement.

  5. #5
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    ...comme je suis toujours aussi nul ....
    ...Tout le monde a un jour débuté......et c'est d'ailleurs le rôle de ce Forum de montrer comment faire.....en guidant (sans macher le tavail...)....c'est pour cela que mon code été largement commenté........de façon à ce que tu en comprenne le principe et pouvoir ainsi le ré-utiliser dans un autre contexte....

    Au début, pour le code VBA, ne te prends pas la tête......pose en langage clair ce que tu souhaite réaliser...:

    ==> Si (If) CeControl contient (=) Telle valeur Alors (Then).......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Ecole.Value = "Ajout école seulement" Then
    ==>....je verrouille (Locked) Tel autre contrôle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Fonctionnement.Locked = True
    .....etc....Le but étant de comprendre l'enchainement logique des divers événements

    ...ce qu'il faut chahger dans le code pour que le ctrl ECOLE ne soit nullement bloqué lui. C'est "Locked " de "Me.Ecole.Locked = True" qu'il faut enlever ?
    ....effectivement c'est ce que tu dois changer.
    Mais maintenant, comme tu souhaite également pouvoir modifier le champ [Ecole] quelque soit la valeur entrée...cette ligne de code ne sert plus à rien....

    Donc sur l'événement "Sur activation" du formulaire.:..(Evénement qui se déclenche à chaque ouverture du formulaire et lors du passage d'un enregistrement à l'autre..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Current()
    If Me.Ecole.Value = "Ajout école seulement" Then
         Me.Fonctionnement.Locked = True
    Else
        Me.Fonctionnement.Locked = False
    End If
    End Sub
    Maintenant, il te faut gérer le verrouillage de ta Zone de liste si éventuellement tu saisie une nouvelle valeur dans le champ [Ecole]....
    Pour cela on va utiliser l'événement "Après MAJ" du champ [Ecole].(Evénement qui se déclenche à chaque sortie d'un champ..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Ecole_AfterUpdate()
    'Si après mise à jour du champ, la valeur est
    'égale à "Ajout école seulement" alors..
    If Me.Ecole.Value = "Ajout école seulement" Then
        '..je verrouille ma Zone de liste
         Me.Fonctionnement.Locked = True
    'Sinon....
    Else
        '...je déverrouile la Zone de liste
        Me.Fonctionnement.Locked = False
    End If
    End Sub
    ...j'ai d'autres listes déroulantes dans le formulaire dans le genre de Fonctionnement, la condition.......
    Ici, c'est la même chose....pose toi simplement la question...:
    "Sur quel événement (mise à jour d'un champ..), tel ou tel contrôle doit-il être verrouillé...???"

    ..et là je te laisse la réponse........il faut bien que tu cherche un peu....
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut Contenu ctrl qui bloque liste déroulante
    Bonjour, J'ai fait ce que tu as écrit mais mon ctrl ECOLE conserve sa valeur "Ajout école seulement" sans que je puisses l'éffacer. Je ne comprends pas parce que tes codes ne disent plus de le bloquer lui. Mabase est compactée WINRAR à l'adresse ci contre. Si tu peux y jeter un oeil et me dire pour quoi ça ne colle pas... Le formulaire en question qui contient tous ces contrôles s'appelle FF-compl. Merci, désole d'abuser. Cordialement.
    http://cjoint.com/?ggs34w6ldS

  7. #7
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    ......... Il faudrait peut-être passer la propriété "Verrouillé" du champ [Ecole] = Non...........et par sur oui comme actuellement....

    Modifie également ton code, car la valeur testée dans le champ [Ecole] est "Ajout école" et non pas "Ajout école seulement"

    Attention, actuellement sur l'événement "Après MAJ" de ton champ [Ecole], la procédure événementielle pointe vers une Macro vide.......et non sur le code VBA....
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut
    MERCI FREE ACCESS CA ROULE ! CORDIALEMENT.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/07/2014, 17h45
  2. Réponses: 12
    Dernier message: 08/02/2007, 11h59
  3. [VB.NET].saisie progressive dans zone liste déroulante
    Par LE VIEUX dans le forum Windows Forms
    Réponses: 10
    Dernier message: 27/09/2006, 13h21
  4. Réponses: 3
    Dernier message: 22/09/2006, 14h31
  5. [VB.NET]retirer un contrôle d'un autre contrôle
    Par Golzinne dans le forum Windows Forms
    Réponses: 10
    Dernier message: 13/03/2006, 17h04

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