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 :

Chercher une check-box dans un état et la cocher avant impression [AC-2010]


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 355
    Points : 238
    Points
    238
    Par défaut Chercher une check-box dans un état et la cocher avant impression
    Bonjour,

    Je coince sur un soucis.
    Dans un état (qui fonctionne bien par ailleurs) j'ai 10 cases à cocher indépendantes.
    Les 5 premières s'appellent cochLecteurA_1, _2 , _3, _4, _5. Les 5 suivantes s'appellent cochLecteurB_1, _2 , _3, _4, _5
    En face de chacune de ces cases à cocher il y a une étiquette nommée respectivement tktLecteurA_1, _2 , _3, _4, _5 et tktLecteurB_1, _2 , _3, _4, _5 (donc tktLecteurA_1 est à côté de cochLecteurA_1, et ainsi de suite)
    Chacune des 5 etiquettes à une légende qui est différente (la première est YB, la seconde LB, la troisième XL, etc...)

    Dans ma DB, j'ai un champ texte ("Sujet") (dont la valeur est passée à l'état en OpenArgs) que je dois splitter pour retrouver deux chaînes de caractères (par exemple: "YB/LB"). Chacune de ces deux chaînes de caractères est l'une des légendes inscrite sur les étiquettes.
    Je voudrais avant d'imprimer mon état:
    - cocher la case à cocher (...A_...) qui est en face de l'étiquette (...A_...) qui a pour légende la première chaîne de caractère
    - cocher la case à cocher (...B_...) qui est en face de l'étiquette (...B_...) qui a pour légende la seconde chaîne de caractère

    Pour ce faire j'ai commencer à écrire cette sub placée sur l'action chargement de l'état

    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
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub Report_Load()
    'Lors du chargement de l'état on doit cocher les noms des opérateurs en fonction de ce qui se trouve dans le champ Lecteur de la table SPZ_MIC
        Dim Lecteurs As String
        Dim txt1 As String, txt2 As String
        Dim ctrl As String
        Dim nomCaC As String
        Dim i As Integer
        Dim ctl As Control
     
        Lecteurs = Me.OpenArgs
     
        If nbOccurence(Chr(34) & Lecteurs & Chr(34), "/") = 1 Then  'on vérifie que la chaine contient bien un / puis on la split
            txt1 = Split(Lecteurs, "/")(0)
            txt2 = Split(Lecteurs, "/")(1)
        End If                                    
     
    Debug.Print "txt1 = " & txt1 & "; txt2 = " & txt2
     
        For Each ctl In Me.Controls
            With ctl
                Select Case .ControlType
                    Case acLabel
                        If .Caption = txt1 And nbOccurence(.Caption, "A_") = 1 Then
                        nomCaC = "coch" & Right(.Name, (Len(.Caption) - 3))     'on crèe le nom de la case a cocher qu'on cherche
                        Me.Controls.Item(nomCaC).Value = True
    Debug.Print "Cac A : " & ctl.Name & " = " & txt1 & "; nomCac A = " & nomCaC
                        End If
     
                        If .Caption = txt2 And nbOccurence(.Caption, "B_") = 1 Then
                        nomCaC = "coch" & Right(.Name, (Len(.Caption) - 3))     'on crèe le nom de la case a cocher qu'on cherche
                        Me.Controls.Item(nomCaC).Value = True
    Debug.Print "Cac B : " & ctl.Name & " = " & txt2 & "; nomCac B = " & nomCaC
                        End If
                End Select
            End With
        Next ctl
     
    End Sub
    La récupération des chaines de caractères se passe bien.

    Aussi bizarre que cela paraît, le code ne me met aucune erreur pour le .Caption alors que ça n'est pas une propriété de ctl normalement... (sauf si je fais erreur)
    Et d'autant plus bizarre, ça me coche toujours la première case à cocher quelque soit le contenu de la première chaîne txt1...


    Pourriez-vous m'aider à résoudre mon souci ? je continue de cherche de mon côté pour résoudre ce problème...

    Merci d'avance de vos suggestions/idées/aide :-)

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 355
    Points : 238
    Points
    238
    Par défaut
    Bon, finalement écrit comme ceci ça fonctionne :-)

    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
        For Each ctl In Me.Controls
            With ctl
                Select Case .ControlType
                    Case acLabel
                        If .Caption = txt1 Then
                            If nbOccurence(.Name, "A") = 1 Then
                                nomCaC = "coch" & Right(.Name, (Len(.Name) - 3))     'on crèe le nom de la case a cocher qu'on cherche
                                Me.Controls.Item(nomCaC).Value = True
                            End If
                        End If
     
                        If .Caption = txt2 Then
                            If nbOccurence(.Name, "B") = 1 Then
                                nomCaC = "coch" & Right(.Name, (Len(.Name) - 3))     'on crèe le nom de la case a cocher qu'on cherche
                                Me.Controls.Item(nomCaC).Value = True
                            End If
                        End If
                End Select
            End With
        Next ctl

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

Discussions similaires

  1. Afficher une check box dans un table.
    Par AngelBreizh dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/03/2011, 09h17
  2. Réponses: 15
    Dernier message: 01/07/2008, 15h12
  3. [JTable] Check Box dans une cellule
    Par kkajout dans le forum Composants
    Réponses: 4
    Dernier message: 19/05/2008, 10h55
  4. Check box dans une JTable
    Par Mischka dans le forum Composants
    Réponses: 1
    Dernier message: 24/07/2007, 13h58
  5. inclure un check box dans une table
    Par krikete13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/06/2007, 13h46

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