Listbox et doublons

cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008 - 17 janv. 2008 à 09:33
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008 - 17 janv. 2008 à 13:47
Bonjour à vous,

voilà j'expose mon problème

Je suis actuellement stagiaire dans un service informatique et j'ai une application à développer.

Pour le début je suis sous Access mais par la suite je fais passer le tout en Oracle mais là n'est pas le problème.
J'ai une table Access qui répertorie tous les agents cotisant pour la CNP.

J'ai une listbox qui contient tous ces agents avec 3 textbox qui affiche leur matricule, nom, et prénom lorsque l'on sélectionne un agent dans la liste, mais dans ma listbox j'ai plus de 2400 éléments!!!

Il faut donc que je n'affiche pas les doublons, il ne faut pas que je les supprime, il est simplement question d'un affichage.

En attente d'une réponse

Je vous remercie.

8 réponses

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
17 janv. 2008 à 10:13
Bonjour,

Si dans ta table il y a plusieurs fois le même nom d'agent, tu peux utiliser le mot clé DISTINCT dans sql :
SELECT DISTINCT nom_agent FROM mes_agents

Bonne Prog
0
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 10:25
Oui!!!
Que je suis bête!!
en plus je l'avais marqué sur le postit collé à mon écran!
Merci de me l'avoir rappelé!
Ca marche nickel maintenant.
Je t'en remercie vivement.
0
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 10:39
Je viens de repérer un problème!
J'ai par exemple
...
Montvalet Jean
Monvalet Charles
...
et dans ma listbox il va me mettre
...Montvalet
Monvalet...

normal, mais lorsque je sélectionne pour afficher les informations dans ma textbox, il va m'afficher
Monvalet Jean pour le premier
Monvalet Jean pour le deuxième

donc pas de Charles en vue

si quelqu'un a une solution je suis preneur
Merci
0
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 10:53
Moi j'ai ça comme code

Imports System.Data.oledb

Public Class Agents

    Dim var As String
    Public conn As OleDbConnection

    Private Sub Agents_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\stage\Documents\CNPTEST.mdb;Persist Security Info=False;")

        Dim commande As OleDbCommand = conn.CreateCommand()
        Dim reader As OleDbDataReader

        conn.Open()

        commande.CommandText = "select distinct nom_usuel, nom_prenom, idf_agent from Archivage_Form_Cnp"
        reader = commande.ExecuteReader
        Do While reader.Read()
            Listbox_agents.Items.Add(reader.Item("nom_usuel"))
        Loop
        reader.Close()
    End Sub

    Private Sub Btn_retour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_retour.Click
        Me.Close()
    End Sub

    Private Sub Listbox_agents_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Listbox_agents.SelectedIndexChanged
        var = Listbox_agents.Text

        Dim commande_agent As OleDbCommand = conn.CreateCommand()        commande_agent.CommandText "Select distinct * from Archivage_form_cnp where nom_usuel'" & var & "'"

        Dim reader_agent As OleDbDataReader = commande_agent.ExecuteReader
        reader_agent.Read()

        TextBox_matricule.Text = reader_agent.Item("idf_agent")
        TextBox_nom.Text = reader_agent.Item("nom_usuel")
        TextBox_prénom.Text = reader_agent.Item("nom_prenom")

        reader_agent.Close()
    End Sub

    Sub list_agents()
        Dim commande_liste As OleDb.OleDbCommand = conn.CreateCommand()
        commande_liste.CommandText = "select distinct * from Archivage_form_cnp"

        Dim reader As OleDb.OleDbDataReader = commande_liste.ExecuteReader
        While reader.Read()
            Listbox_agents.Items.Add(reader.Item("nom_usuel"))
        End While

        reader.Close()

    End Sub
End Class
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
17 janv. 2008 à 10:58
Bonjour

Récupère aussi la clé primaire de l'enregistrement.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 11:18
Ba mon idf_agent est la clé primaire des enregistrements
0
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
17 janv. 2008 à 13:21
Bonjour

A la place d'ajouter : reader.Item("nom_usuel")

Utilise une classe perso (ou une structure) qui contiendra ta clé primaire et surcharge les méthode ToString.

Pour lire de nouveau les données, cast l'Object sélectionne en ton type (Mot clés CType, DirectCast)

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_Choucroute62 Messages postés 34 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 13:47
Ok je te remercie de ton aide

Au fait, pas mal ton site, bonne continuation.
0
Rejoignez-nous