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

Access Discussion :

problème de mise en page d'une zone de liste


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut problème de mise en page d'une zone de liste
    bonjour tout le monde!!

    je suis presque une novice en programmation vb sous Access et ce qu'on demande est (je trouve) assez compliqué, c'est pour ça que je viens sur ce forum demander de l'aide.

    voilà le problème : grâce au tuto de cafeine, j'ai fait un formulaire avec une recherche multi-critères et j'ai stocké le résultat dans une zone de liste (cf tuto).

    ce résultat comprend plusieurs champs (dont les deux premiers cachés) : matricule, nom_machine, date, libelle_domaine, libell_designation, code_notation.

    et mon maitre de stage voudrait que les lignes qui contiennent des codes de notation égales à 'L' ou à 'I' soit écrites en rouge et je ne sais absolument pas comment faire ça...

    meric de votre aide.

    audrey

  2. #2
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Tu peux oublier de mettre en rouge des lignes d'une zone de liste.

    Tu peux uniquement le faire avec un formulaire liste, en utilisant le formatage conditionnel...

    Ton maître de stage doit réviser sa demande....

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    il y a vraiment aucun moyen de faire ça?

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    c'est de nouveau moi!!

    il m'a proposé une autre solution :

    dans mes colonnes, j'ai le libellé du domaine.

    ça donne à peu près ça :

    libellé

    12/06/05 blablablabla être capable de ...
    12/06/05 blablablabla peut faire...
    12/06/05 pompompom se charge de....


    est-ce que c'est possible d'insérer une ligne blanche entre deux domaines dès que je trouve un libellé différent? (ici insérer une ligne blanche entre la deuxième et la troisième ligne)

    merci de votre aide.

    audrey

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    est-ce que quelqu'un peut me dire si c'est possible ou pas? svp

  6. #6
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    J'en doute.
    je te propose une autre alternative:
    Une alternance de 2 couleurs (Rouge et bleu par ex) sur un form comme ceci

    Domaine......................Couleur
    D1..................................R
    D1..................................R
    D2..................................B
    D3..................................R
    D3..................................R
    D4..................................B
    ..........
    Pour cela il faudra ajouter un champ OUI/NON à ta table source.
    Tiens nous au courant.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    déjà merci d'avoir répondu !!

    ensuite ta solution peut m'intéresser mais je n'ai pas très bien compris,il faut que je rajoute un champ de type Oui/Non dans ma table?

    mais ce oui/non correspond à quoi?

    et comment est-ce que ça va m'aider pour les couleurs?

    est-ce que tu pourrais m'expliquer un peu plus s'il te plait parce que je suis pas très très douée en programmation Vb

    voici le code qui me permet d'afficher mes valeurs dans la zone de liste :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    Private Sub chkNom_Click()
     
        Me.txtNom.Visible = Not Me.txtNom.Visible
        If txtNom.Visible = True Then Me.txtNom.SetFocus
        txtNom.Value = Null
        RefreshQuery
        Call listerPrenom
        Call listerMachine
     
     End Sub
     
     
    Private Sub chkMachine_Click()
     
        Me.cmbMachine.Visible = Not Me.cmbMachine.Visible
        If cmbMachine.Visible = True Then Me.cmbMachine.SetFocus
        cmbMachine.Value = Null
        RefreshQuery
        Call listerMachine
     
    End Sub
     
     
     
    Private Sub chkPrenom_Click()
     
        Me.cmbprenom.Visible = Not Me.cmbprenom.Visible
        If cmbprenom.Visible = True Then Me.cmbprenom.SetFocus
        cmbprenom.Value = Null
        RefreshQuery
        Call listerPrenom
        Call listerMachine
     
    End Sub
     
     
     '*********************************************************************************************************************
    'ces procédures permettent de lancer RefreshQuery lorsque les données contenues dans les zones de texte on été modifiées
     
    Private Sub txtNom_BeforeUpdate(Cancel As Integer)
     cmbMachine.Value = Null
     cmbprenom.Value = Null
     Call listerPrenom
     Call listerMachine
    End Sub
     
     
     
    Private Sub cmbprenom_BeforeUpdate(Cancel As Integer)
     cmbMachine.Value = Null
     Call listerMachine
    End Sub
     
     
    Private Sub cmbMachine_BeforeUpdate(Cancel As Integer)
     RefreshQuery
    End Sub
     
     
    Private Sub RefreshQuery()
    'cette procédure permet d'afficher le résultat de la recherche dans la zone de texte
     
     
    Dim SQL As String   ' contient la requête SQL qui sera utilisée pour afficher les évaluations
    Dim connecteur As String
     
     
    If (Me.chkMachine And Me.chkNom) Or (Me.chkMachine And Me.chkPrenom) Then
     
        ' on récupère en premier lieu toutes les lignes de la table
        SQL = "SELECT Opérateur.matricule, Evaluer.nom_machine, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule "
            connecteur = " WHERE "
     
     
        ' si la case Nom est cochée, on sélectionne seulement les lignes dont le nom est celui donné en entrée
        If Me.chkNom Then
            SQL = SQL & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
     
        End If
     
     
        ' si la case prenom est cochée, on sélectionne seulement les lignes dont le prénom est celui donné en entrée.
        If Me.chkPrenom Then
            SQL = SQL & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
                End If
     
        'si la case machine est cochée, on sélectionne seulement les lignes dont le nom de la machine est celle donnée en entrée.
        If Me.chkMachine Then
            SQL = SQL & connecteur & "(Evaluer!nom_machine = '" & Me.cmbMachine.Value & "')"
                End If
     
     
        'on ajoute un point virgule à la fin de la requête (nécessaire pour signaler qu'une requête est finie
        'et on classe les résultats par ordre alphabétique
        SQL = SQL & " ORDER BY Evaluer.matricule, Evaluer.date, Evaluer.nom_machine, Domaine.apparition_domaine, Sous_Domaine.apparition_sous_domaine, Designation.apparition_designation;"
     
     
        'on affecte à la liste de résultats la requête SQL
        Me.lstResultsEvaluation.RowSource = SQL
     
     
        'cette commande permet enfin d'exécuter la requête et d'afficher les réponses
        Me.lstResultsEvaluation.Requery
     
    Else
     
        SQL = "SELECT Opérateur.matricule, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule WHERE Opérateur.matricule = 0 ;"
     
     
        Me.lstResultsEvaluation.RowSource = SQL
     
          Me.lstResultsEvaluation.Requery
     
        End If
     
    End Sub

    merci de ton aide

    audrey

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Salut,

    j'ai pas lu tout ton code mais mettre un blanc entre deux lignes c'est possible.
    Par contre cela signife que tu dois faire la requête à la main et ensuite ajouter les lignes à la main dans ton ListBox --> tu n'utilises plus la propriété RowSource en tant que requête SQL.

    Ton ListBox n'est alors lié à aucun champ d'aucune table et sa propriété RowSourceType est à ValueList

    Pour pouvoir effectuer la requête à la main je te conseille d'aller voir la FAQ en faisant une petite recherche sur DAO.

    Une fois la référence à DAO (cf. FAQ) ajouté et le petit tour sur la FAQ terminé voici un pseudo code récupérant les valeurs de deux champs pour le mettre sur une ligne dans un ListBox et laissant une ligne vide entre deux lignes de données :

    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 RemplirListBox()
    Dim strQuery As String
    Dim rst As DAO.Recordset, fld_nom As DAO.Field, fld_prenom As 
    DAO.Field
    Public db As DAO.Database
     
    ' Se "connecte" à ta base de donnée --> si cette ligne ne marche pas
    ' j'en ai une autre en stock
    Set db = DBEngine.Workspace(0).Database(0)
     
    strQuery = "SELECT Nom, Prenom FROM Contacts;"
     
    ' Execute la requête : les données récupérée seront en lecture seule
    ' et ne pourra qu'avancer dans ces données, jamais reculer
    Set rst = db.OpenRecordset(strQuery, dbOpenForwardOnly, dbReadOnly)
     
    ' Supprime les éléments déjà présents dans la ListBox
    ListBox0.RowSource = ""
     
    ' Remplit la ListBox
    While Not rst.EOF                      ' Tant qu'on a pas tt parcouru
       ' Récupère les deux champs
       Set fld_nom = rst(0)
       Set fld_prenom = rst(1)
       ListBox0.RowSource = ListBox0.RowSource & fld_nom & " " & fld_prenom &"; ;"
    Wend
     
    rst.Close
    End Sub
    Une ligne sera au format : nom espace prénom
    Les lignes sont séparés par des ; dans la propriété RowSource.
    Pour être bien sûr d'avoir des lignes blanches on y met un espace, à tester sans l'espace.

    En espérant que cela puisse t'aider !

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    déjà merci de m'avoir répondu et merci de m'avoir dit que ça pouvait se faire parce que je commençais un peu à paniquer...

    mais est-ce que tu pourrais m'aider un peu plus?

    voilà j'ai appliqué ton code et voilà ce que ça donne :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Public db As DAO.Database
     
     
    Private Sub RefreshQuery()
    'cette procédure permet d'afficher le résultat de la recherche dans la zone de texte
     
     
    Dim requete As New Command    ' contient la requête SQL qui sera utilisée pour afficher les évaluations
    Dim connecteur As String
    Dim resultat As Recordset
    Dim fld_matricule As DAO.Field
    Dim fld_machine As DAO.Field
    Dim fld_date As DAO.Field
    Dim fld_domaine As DAO.Field
    Dim fld_designation As DAO.Field
    Dim fld_code As DAO.Field
     
     
    Set db = DBEngine.Workspace(0).Database(0)
     
    If (Me.chkMachine And Me.chkNom) Or (Me.chkMachine And Me.chkPrenom) Then
     
        ' on récupère en premier lieu toutes les lignes de la table
        requete.CommandText = "SELECT Opérateur.matricule, Evaluer.nom_machine, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule "
        connecteur = " WHERE "
     
     
        ' si la case Nom est cochée, on sélectionne seulement les lignes dont le nom est celui donné en entrée
        If Me.chkNom Then
            requete.CommandText = requete.CommandText & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
            connecteur = " AND "
        End If
     
     
        ' si la case prenom est cochée, on sélectionne seulement les lignes dont le prénom est celui donné en entrée.
        If Me.chkPrenom Then
            requete.CommandText = requete.CommandText & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
            connecteur = " AND "
        End If
     
        'si la case machine est cochée, on sélectionne seulement les lignes dont le nom de la machine est celle donnée en entrée.
        If Me.chkMachine Then
            requete.CommandText = requete.CommandText & connecteur & "(Evaluer!nom_machine = '" & Me.cmbMachine.Value & "')"
        End If
     
     
        'on ajoute un point virgule à la fin de la requête (nécessaire pour signaler qu'une requête est finie
        'et on classe les résultats par ordre alphabétique
        requete.CommandText = requete.CommandText & " ORDER BY Evaluer.matricule, Evaluer.date, Evaluer.nom_machine, Domaine.apparition_domaine, Sous_Domaine.apparition_sous_domaine, Designation.apparition_designation;"
     
     
        Set resultat = db.OpenRecordset(requete.CommandText, dbOpenForwardOnly, dbReadOnly)
     
        'on affecte à la liste de résultats la requête SQL
        Me.lstResultsEvaluation.RowSource = ""
     
        resultat.MoveFirst
     
        Do While Not resultat.EOF
     
            Set fld_matricule = resultat.Fields("matricule").Value
            Set fld_machine = resultat.Fields("nom_machine").Value
            Set fld_date = resultat.Fields("date").Value
            Set fld_domaine = resultat.Fields("libelle_domaine").Value
            Set fld_designation = resultat.Fields("libelle_designation").Value
            Set fld_code = resultat.Fields("code_notation").Value
     
            Me.lstResultsEvaluation.RowSource = Me.lstResultsEvaluation.RowSource & fld_matricule & " " & fld_machine & " " & fld_date & " " & fld_domaine & " " & fld_designation & " " & fld_code & "; ;"
     
            resultat.MoveNext
     
        Loop
     
        'cette commande permet enfin d'exécuter la requête et d'afficher les réponses
        Me.lstResultsEvaluation.Requery
     
    end if

    j'ai mis public db as DAO.database en dehors de la fonction parce que sinon il me mettait un message d'erreur.
    et maintenant il me met un message d'erreur en me soulignant workspace
    et en me disant 'membre de données ou de méthodes introuvable'.

    mais il y a une question que je me posais; dans ma zone de liste, j'avais défini des largeurs pour chaque colonne du résultat mais ça va plus marcher maintenant, si?

    merci d'avance

    audrey

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Euh...nan je crois que ce que je t'ai donné ne supporte pas les colonnes. En fait j'ai jamais essayé avec des colonnes.
    Ce qu'on fait ici c'est qu'on "rassemble" 2 colonnes dans 1 seule....

    Bon si tu n'as vraiment pas le choix je vais essayer avec des colonnes. Mais c'est sans garantie de réussite.

    P.S. Dans le menu Outils\Référence (ds l'éditeur VBA) vérifie que Microsoft DAO Object Library est bien coché, sinon fait le !

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    j'ai vérifié et c'est bien coché!! donc je sais pas d'où vient le problème...(tu m'avais dit que si cette ligne-là marchait pas, tu avais un autre code ?)

    sinon si c'est vraiment mais alors vraiment impossible ( ) alors je ferai sans les colonnes mais c'est vrai que ça m'arrangerait beaucoup plus avec...

    merci beaucoup
    audrey

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    j'ai revérifié le code et apparemment c'est vraiment sur 'workspace' qu'il bloque...

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    N'utilise plus le workspace fait juste cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = DBEngine.OpenDatabase("C:\My Documents\MaBase.mdb")
    En mettant bien le chemin d'accès vers TON fichier access

    Pour les colonnes je vais voir...dès que j'ai 5 minutes je cherche !

  14. #14
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    je viens de changer mon code et ça y est, ça ne bugg plus mais j'ai un autre problème maintenant il me dit :
    le paramètre de cette propriété est trop long.
    et il me souligne la ligne où je mets les valeurs trouvées dans la liste :

    me.lstResultsEvaluation.RowSource = me.lstResultsEvaluation.Rowsource & ...


    voici le code :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public db as DAO.Database
     
     
    Private Sub RefreshQuery()
    'cette procédure permet d'afficher le résultat de la recherche dans la zone de texte
     
     
    Dim requete As New Command   ' contient la requête SQL qui sera utilisée pour afficher les évaluations
    Dim connecteur As String
    Dim resultat As DAO.Recordset
    Dim fld_matricule As DAO.Field
    Dim fld_machine As DAO.Field
    Dim fld_numero As DAO.Field
    Dim fld_date As DAO.Field
    Dim fld_domaine As DAO.Field
    Dim fld_designation As DAO.Field
    Dim fld_code As DAO.Field
     
     
    Set db = DBEngine.OpenDatabase("S:\Methodes\J-ME-Documents des Stagiaires\Audrey Desgres - stagiaire IUP MIAGe\base_données_copie2.mdb")
     
     
    If (Me.chkMachine And Me.chkNom) Or (Me.chkMachine And Me.chkPrenom) Then
     
        ' on récupère en premier lieu toutes les lignes de la table
        requete.CommandText = "SELECT Opérateur.matricule, Evaluer.nom_machine, Evaluer.numero_designation, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule "
            connecteur = " WHERE "
     
     
        ' si la case Nom est cochée, on sélectionne seulement les lignes dont le nom est celui donné en entrée
        If Me.chkNom Then
           requete.CommandText = requete.CommandText & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
         connecteur = " AND "
           End If
     
     
        ' si la case prenom est cochée, on sélectionne seulement les lignes dont le prénom est celui donné en entrée.
        If Me.chkPrenom Then
            requete.CommandText = requete.CommandText & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
                   connecteur = " AND "
        End If
     
        'si la case machine est cochée, on sélectionne seulement les lignes dont le nom de la machine est celle donnée en entrée.
        If Me.chkMachine Then
            requete.CommandText = requete.CommandText & connecteur & "(Evaluer!nom_machine = '" & Me.cmbMachine.Value & "')"
              End If
     
     
        'on ajoute un point virgule à la fin de la requête (nécessaire pour signaler qu'une requête est finie
        'et on classe les résultats par ordre alphabétique
        requete.CommandText = requete.CommandText & " ORDER BY Evaluer.matricule, Evaluer.date, Evaluer.nom_machine, Domaine.apparition_domaine, Sous_Domaine.apparition_sous_domaine, Designation.apparition_designation;"
     
     
        Set resultat = db.OpenRecordset(requete.CommandText, dbOpenForwardOnly, dbReadOnly)
     
     
        Me.lstResultsEvaluation.RowSource = ""
     
        While Not resultat.EOF
            Set fld_matricule = resultat(0)
            Set fld_machine = resultat(1)
            Set fld_numero = resultat(2)
            Set fld_date = resultat(3)
            Set fld_domaine = resultat(4)
            Set fld_designation = resultat(5)
            Set fld_code = resultat(6)
     
            Me.lstResultsEvaluation.RowSource = Me.lstResultsEvaluation.RowSource & fld_matricule & " " & fld_machine & " " & fld_numero & " " & fld_date & " " & fld_domaine & " " & fld_designation & " " & fld_code & "; ;"
     
        Wend
     
        resultat.Close
    il me met des erreurs sur la ligne me.lstResultsEvaluation = me.lstResultsEvaluation.rowsource & fld....

    meric beaucoup

    audrey

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Tu as combien d'éléments dans ta table, cad combien de lignes à afficher (ss les lignes blanches) ?

  16. #16
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    environ 80 à chaque fois

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Ah moi j'en met 116 mais des lignes beaucoup plus courte.
    Teste voir juste avec un ou deux champ au lieu des 6..

  18. #18
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    t'as raison, quand je mets que trois champs, ça marche ...

    alors comment je peux faire puisque moi c'est plus long...

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Je ne sais pas..à priori on atteint la limite de la taille d'une chaîne de caractère :S
    Donc même en trouvant le moyen de décrire des colonnes c'est mort avec cette technique.

    Tu ne peux pas faire autrement ?
    Pourquoi doit tu laisser des blancs ?
    Quel est l'objectif ?
    Il y a toujours moyen de faire autrement !

  20. #20
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut


    bon alors en fait l'objectif c'est que j'ai un formulaire de consultation, et il faut que les chefs d'équipe (en choisissant le nom, le prénom de l'opérateur et la machine) puissent consulter les dernières évaluations faites pour cet opérateur sur la machine demandée.

    donc je suis obligée d'afficher la date de l'évaluation, le libellé du domaine de compétences évalué, le libellé de la désignation (c'est-à-dire une tache) évaluée avec la note.
    une feuille d'évaluation comprend à peu près 80 taches à évaluer donc je suis obligée d'afficher les 80.

    et à part dans une zone de liste, je ne vois pas où je peux affciher le résultat d'une recherche multi-critères...
    donc j'avais réussi mon affichage mais mon maitre de stage trouve que c'est un peu fouilli (ça fait beaucoup de données à la suite de stockées), donc au début il m'a demandé d'une part :
    - si je pouvais quand je cliquais sur un libellé de domaine, mettre en bleu toutes les lignes qui appartiennent aussi à ce domaine (ce qui ne semble pas possible parce que quand j'ai demande si je pouvais mettre en rouge certaines selon que le code de notation est 'L' ou 'I', on m'a dit que c'était impossible mais si tu sais comment faire!!! )

    - d'autre part, vu que je lui ai dit que c'étai pas possible,il m'a demandé si à ce moment-là, je pouvais pas séparer les domaines en insérant une ligne vide.

    je sais pas comment je vais faire...

    merci d'avance pour les solutions à venir
    audrey

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] mise en forme d'une zone de liste
    Par FHDLB dans le forum IHM
    Réponses: 1
    Dernier message: 18/05/2012, 17h38
  2. Mise à jour automatique d'une zone de liste
    Par jean-paul lepetit dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/10/2007, 17h49
  3. Problème avec la multi-sélection dans une zone de liste
    Par Mimisio dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/07/2007, 16h23
  4. Réponses: 4
    Dernier message: 12/06/2007, 11h50

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