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

VBA Access Discussion :

Permission de certains champs quand saisie d'une certaine valeur dans un autre champ


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut Permission de certains champs quand saisie d'une certaine valeur dans un autre champ
    Bonjour

    Je travail avec access 2007 (je le met là ça rentrait pas dans le titre )

    Pour vous aidez à comprendre ce que je souhaite faire, je vous met l'image de mon formulaire.
    Je dois faire en sorte que les 3 champs situés dans Détails ne soit délockés que lorsque je saisie une certaine valeur dans le champ Code composant (J'ai mis le curseur sur ce champ pour vous montrez la structure du code en question.)
    Les valeurs qui doivent permettre l'autorisation de ces 3 champs sont les codes 520-0000 à 520-9999, 600-0000 à 699-9999 et 700-0000 à 799-9999.

    J'avais déjà commencé à coder en utilisant le champ Désignation à la place de Code composant et en spécifiant les termes qui permettent les champs dans détails pour voir si le code fonctionnait. Ca marchait sans problème ... à condition d'utiliser la bonne orthographe

    Mais maintenant, avec ces valeurs numériques je ne sais pas trop comment les insérer dans mon code, enfin sous quelles formes les écrire (je sais pas si je sui très claire...)

    Enfin, je vous met mon bout de code que j'avais fait il y a quelques temps

    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
    Sub SetFormState(Optional fChangeFocus As Boolean = True)
        If fChangeFocus Then Me.ComponentCode.SetFocus
        tabArticles.Enabled = Not IsNull(Me![ComponentCode])
     
        If Me.Désignation = "Groupe radiogène" Or Me.Désignation = "Détecteur" Then
            Me.N°sérieCompo.Enabled = True
            Me.TypeComposant.Enabled = True
            Me.Révision.Enabled = True
        Else
            Me.N°sérieCompo.Enabled = False
            Me.TypeComposant.Enabled = False
            Me.Révision.Enabled = False
        End If
     
    ...
     
    End Sub
    J'aurais bien besoin d'un petit coup de pouce d'une personne connaissant mieux le VBA que moi

    Merki ^^
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Texte6_AfterUpdate()
     
    If Left(Me.Texte6, 3) >= 600 And Left(Me.Texte6, 3) <= 799 Or Left(Me.Texte6, 3) = 520 Then
    Me.Texte8.Enabled = True
    Else
     
    Me.Texte8.Enabled = False
    End If
    End Sub
    Remplace texte6 par ton N° de code
    et ajoute tes champs a la place de texte 8
    j'ai mis le code sur mise a jour de ton N° de code a toi de voir pour le mettre sur un autre evenement.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Humm... ça ne marche pas
    Les champs ne sont même pas verrouillés.

    Merci quand même

    Edit:
    En fait, quand je le met dans mon bout de code comme j'ai fait au dessus, ça marche pour les données déjà enregistrées, les champs sont bien verrouillés si [code composant] ne correspond pas aux critères. Mais quand je veux créer un nouveau composant, les champs sont toujours verrouillés mais ils le reste même après avoir saisi un code composant (selon les critères).

    Et quand je met le code dans AfterUpdate, là mes champs ne sont carrément plus verrouillés




  4. #4
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Sa marche ou j'ai rien compris a ton probleme
    voici un exemple et dit moi si il correspond a ton besoin

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Effectivement ca marche mais pas chez moi

    J'dois encore avoir une merdouille quelque part qui me fait bugger le truc

    grrrr

    Bon ... je m'y replonge pour la nième fois... Je finirais bien pas le faire marcher ce foutu formulaire

    Edit: j'viens de penser à un truc: c'est p'te parce que mes champs sont dans un onglet et que le champ code composant non. Faudrait spécifié peut être...

    Bon j'rentre chez moi. Après une bonne nuit de sommeil (pour comme pour le PC ) ça ira peut être mieux...

  6. #6
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Il faut mettre sur activation du form

  7. #7
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Je vient d'essayer avec un onglet sa fonctionne aussi bien

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Ca y est ca marche Merci ^^

    Par contre je me suis trompé pour le 520: c'est 520-0000 à 520-9999 mais 520-0000 à 529-9999

  9. #9
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    remplace l'ancien code par celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(Me.N°Code, 3) >= 600 And Left(Me.N°Code, 3) <= 799 Or Left(Me.N°Code, 3) >= 520 And Left(Me.N°Code, 3) < 530 Then
    pense a modifier la lgne sur chaque propriete ou tu as mis le code

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Merci ^^

    Très pratique cette petite fonction, je connaissais pas

  11. #11
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    ton probleme est il Resolu ?

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Pour le résultat souhaiter oui mais sinon pas tout fait...

    > Les champs restent activés lorsque que je clique sur le bouton "Nouveau" or ils devraient être à nouveaux verrouiller

    > A l'ouverture du formulaire les champs en question sont verrouillés pour tous les enregistrements alors qu'ils ne devraient pas l'être pour les enregistrements dont le Code composant correspond aux critères

    Mais je pense que c'est juste parce qu'il manque un petit quelque chose au code

  13. #13
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Tu as bien ajouter le code sur la propriete Sur activation du formulaire?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Arf non j'étais resté sur l'AfterUpdate

    Cette fois c'est bon, ça marche nickel comme il faut

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/03/2013, 18h27
  2. [WD14] Position d'un champ de saisie dans un autre champ de saisie
    Par DanielB dans le forum WinDev
    Réponses: 24
    Dernier message: 04/05/2011, 11h56
  3. envoyer 1 valeur dans un autre champ
    Par marcmarc150 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/10/2009, 14h29
  4. Réponses: 9
    Dernier message: 09/03/2007, 15h01
  5. Rendre le focus à champ de saisie après une action
    Par Gothico dans le forum WinDev
    Réponses: 3
    Dernier message: 24/10/2006, 16h21

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