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 :

contrôle sur Formulaire


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut contrôle sur Formulaire
    Bonjour
    Une question de débutant.
    Je souhaite créer un contrôle sur un formulaire d’accueil permettant en fonction d’un critère d’etre dirigé vers tel ou tel formulaire.

    Je m’explique ;-)

    J’ai crée une table contenant 2 champs ( ident et niveau) par ex :
    Toto A
    Tata B
    Je souhaite donc que lorsqu’on saisi son ident dans une checkbox du form d’accueil, un controle soit effectué afin d’ouvrir un formulaire en fonction du niveau associé ( A,B..)
    J’espère avoir été clair… Merci d’avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    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 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Les formulaires peuvent s'ouvre avec une condition WHERE...
    Si ton formulaire à ouvrir est conçu comme il se doit tu procèdes ainsi...
    Par ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenForm "MonFormulaire", acNormal, , _
    "[MonChamp]=" & MaValeurSélectionnée
    Argy

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci pour ta réponse rapide..
    mais, c’est avant d’ouvrir les formulaires que je dois effectuer un contrôle.
    Le principe étant une gestion de droits d’accès.
    Sur mon formulaire d’accueil ayant pour source ma base d’habilitations ( 2 champs)
    - Je saisie mon ident (champ1),dans une checkbox
    - puis en cliquant sur un bouton je suis redirigé vers le formulaire correspondant aux droits affectés à cet ident (champ2)

    C’est ce contrôle que je n’arrive pas à mettre en oeuvre…

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu peux toujours utiliser une condition, tu fais un test, et suivant le résultat de ce test, tu ouvre l'un ou l'autre formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Monbouton_onclick()
    select case [maCheckBox]
    case "toto"
    docmd.openform "toto"
    case "titi"
    docmd.openform "titi"
    case "tata"
    docmd.openform "tata"
    end select
     
    End Sub

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Autre exemple
    Une table tbAcces contient 3 champs (ident, niveau, formulaire)
    l'utilisateur entre l'ident et le niveau et lance l'ouverture du formulaire par un bouton par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm DLookUp("[formulaire]","tbAcces","[ident]='" & Me!ident & "' and [niveau]='" & Me!niveau & "'")

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Bonjour,
    en fait ,mon utilisateur doit saisir uniquement sont Ident et valider,
    le contrôle vérifie ensuite son niveau d'accès par rapport à cet ident et le dirige vers le form correspondant...
    je galère
    merci d'avance

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu fais une requête qui compare son ID au groupe et tu fais ton tes en fonction du groupe.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    je débute...et je sais pas faire
    désolé...

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Jette un coup d'oeil.
    C'est un exemple vite fait.

    Sur le premier formulaire, tu dois entrer un nom qui est stocké dans une table toto; titi ou tata.
    Les noms après requête donnent un groupe gp1 ou gp2, en fonction de ce groupe s'ouvre le Formulaire groupe 1 ou 2 par click sur le bouton.

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci,
    j'avance à petits pas
    j'ai un petit soucis lorsque j'applique ton exemple.
    ça fonctionne pour le premier Ident de ma table, mais si j'essaie d'en entrer un autre ( présent aussi dans ma table)
    j'ai le message "Utilisation incorrecte de Null"

    je savais que j'étais nul, mais de là à me l'ecrire dans une msgBox...
    j'ai du louper une étape ?..

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Ajoute la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Case else
    stDocName = "Groupe1"
    C'est possible que ce soit ça.

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est pas ça, en fait la valeur n'est pas dans la table.
    Pour y remédier, il faut faire un combo qui prend sa source dans la table ou vérifier que le résultat de la requête n'est pas null

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    c'est la même chose !!!
    il ne prend que le premier enregistrement de ma table...
    alors que dans ton exemple ç'a marche...
    je m'arrache les cheveux

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci pour tes precieux conseils...ç'a fonctionne maintenant pour l'ensemble des Idents contenus dans ma table.
    En revanche, lorsque je saisie un ident non présent, le même message apparait "Utilisation incorrecte de Null"
    comment y remédier et éviter qu'il apparaisse?

  15. #15
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Faire un test sur la valeur retournée par la requête, ou encore avec un combo limité à la liste.

  16. #16
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut,

    Un tour vers la fonction Nz pour éviter les valeurs nulles est une solution.
    Code Exemples d'utilisation de la Fonction Nz : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'Si numérique
    variable=Nz(champ,0)
    'Si texte
    variable=Nz(champ,"")

    La {variable} aura la valeur après la virgule si champ est null.

    Bon courage et @+

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci pour toutes vos réponses ! c'est Noêl !
    mais en tant que débutant je ne sais pas ou placer mon test...
    dans ma requête ? ou dans le Case ?
    en attendant, Bonnes fêtes à tous.

  18. #18
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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
     
    Private Sub Command7_Click()
    On Error Resume Next 
     
        Dim stDocName As String
        Dim stLinkCriteria As String
        Dim groupe As String
     
        groupe = Me.tblUser_subform!group
     
        If groupe = "" Then
            Debug.Print " err"
            MsgBox "Mauvais nom"
            Exit Sub
        End If
     
     
        Debug.Print groupe; " groupe"
        Select Case groupe
        Case "gp1"
        stDocName = "Groupe1"
        Case "gp2"
        stDocName = "Groupe2"
        End Select
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
     
     
    End Sub
    Voilà, c'est là que tu dois mettre ton code, lors du clic sur le bouton.

  19. #19
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci infiniment pour ton aide.
    Ecrit comme ç'a, cela parait simple
    en tout cas ç'a marche correctement.
    j'avance petit à petit...
    Bonne Année à tous

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Je reviens à la charge...
    Par rapport à ton exemple, je souhaite récupérer la valeur saisie dans la zone de texte permettant d'identifier l'utilisateur pour m'en servir dans un autre Form.
    J'ai mis Public "mazonedetexte" ,je récupère bien cette valeur dans l'autre Form et peux l'utiliser - en revanche mon premier formulaire ne fonctionne plus et n'effectue plus le controle d'identifiant.
    j'ai surement fait une erreur ? mais ou ...

Discussions similaires

  1. [AC-2010] Comment sélectionner un contrôle sur formulaire en mode création ?
    Par JOHN14 dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/05/2014, 09h01
  2. [AC-2000] Verrouiller certains contrôles sur formulaire
    Par steps5ive dans le forum IHM
    Réponses: 2
    Dernier message: 22/02/2012, 15h31
  3. Contrôle sur formulaire
    Par frutix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/04/2007, 13h28
  4. Réponses: 4
    Dernier message: 22/09/2006, 14h29
  5. contrôle sur un champ dans un formulaire
    Par yoline dans le forum Access
    Réponses: 6
    Dernier message: 01/10/2005, 19h23

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