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

VB.NET Discussion :

Afficher plusieurs données d'une table dans un listbox après recherche multicritères


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Par défaut Afficher plusieurs données d'une table dans un listbox après recherche multicritères
    Bonjour,

    Ca y est! Je suis en mode craquage!

    Bon voilà, j'ai fait ma recherche multicritère (qui fonctionne) et je veux afficher plusieurs données de la table dans la listbox en fonction de la recherche. Je l'ai déjà fait sur Access et là je lutte sur VB 2005.

    Voici mon 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
     
     
    'Déclarer la connexion
            Dim ObjetConnection As OleDbConnection
            ' Déclaration l'Objet Commande 
            Dim ObjetCommand As OleDbCommand
            ' Déclaration Objet DataAdapter
            Dim ObjetDataAdapter As OleDbDataAdapter
            ' Déclaration Objet DataSet
            Dim ObjetDataSet As New DataSet
            'String contenant la 'Requête SQL' 
            Dim strSql As String
            ' Déclaration Objet DataTable
            Dim ObjetDataTable As DataTable
            'Paramêtres de connexion à la DB
            Dim strConn As String
            ' Déclaration d'un  OleDbCommandBuilder
            Dim ObjetCB As OleDbCommandBuilder
     
     
            S1 = "SELECT * FROM Maintenance Where Maintenance!ID <> 0 "
            If Me.Check_nom.Checked = -1 Then
                S1 = S1 & "And Maintenance!Technicien = '" & Me.Cmb_nom.Text & "' "
            End If
            If Me.Check_mach.Checked = -1 Then
                S1 = S1 & "And Maintenance!Machine = '" & Me.Cmb_mach.Text & "' "
            End If
            If Me.Check_type.Checked = -1 Then
                S1 = S1 & "And Maintenance!Type_panne = '" & Me.Cmb_type.Text & "' "
            End If
            If Me.Check_date.Checked = -1 Then
                S1 = S1 & " and Maintenance!Datem between " & CStr(Me.Cmb_date1.Value) - 1 & " and " & CStr(Me.Cmb_date2.Value) - 1
                'SQL = SQL & " and Maintenance!Datem between " & CLng(Me.cmbdate1) & " and " & CLng(Me.cmbdate2)
            End If
            If Me.Check_term.Checked = -1 Then
                S1 = S1 & "And Maintenance!Op_term = '" & Me.Cmb_term.Text & "' "
            End If
     
            'S1Where = Trim(Right(S1, Len(S1) - InStr(S1, "Where ") - Len("Where ") + 1))
            S1 = S1 & ";"
     
    'Initialisation de la chaîne de paramètres pour la connexion
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Documents and Settings\fdurame\Mes documents\GMAO_version1.mdb;"
            'Initialisation de la chaîne contenant l'instruction SQL
            strSql = S1
            'Instanciation d'un Objet Connexion
            ObjetConnection = New OleDbConnection
            'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.ConnectionString = strConn
            'Ouvrir la connexion
            ObjetConnection.Open()
            'Instancier un objet Commande
            ObjetCommand = New OleDbCommand(strSql)
            'Instancier un objet Adapter
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            'initialiser l'objet Command
            ObjetCommand.Connection() = ObjetConnection
            'initialiser l'objet OleCBComandBuilder (sinon pas d'update)
            ObjetCB = New OleDbCommandBuilder(ObjetDataAdapter)
            'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
            ObjetDataAdapter.Fill(ObjetDataSet, "Maintenance")
            'Mettre dans un Objet DataTable une table du DataSet
            ObjetDataTable = ObjetDataSet.Tables("Maintenance")
            'Mettre dans le DataGrid une table  DataTable
            DataGrid1.DataSource = ObjetDataTable
     
            'Indiquer quelle colonne afficher
            Result.DisplayMember = "Machine"
     
            'Indiquer au ListBox d'afficher la table 
            Result.DataSource = ObjetDataSet.Tables("Maintenance")
    Donc là, ça m'affiche juste les données "Machine". Et j'aurai voulu avoir "Nom", ...

    Je cherche, je cherche... et je trouve pas. Quelqu'un pourrait-il m'aider?

    Merci beaucoup!

  2. #2
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut
    Bonjour !

    Sinon il y a un autre moyen afin d'afficher le résultat de ta recherche, tu peux aussi le placer dans un datagrid, flexgrid...

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Par défaut
    Citation Envoyé par lou87
    Bonjour !

    Sinon il y a un autre moyen afin d'afficher le résultat de ta recherche, tu peux aussi le placer dans un datagrid, flexgrid...
    Qu'est ce q'un datagrid? Un flexgrid?

    Désolé mais je commence le VB cette semaine. Je programmais en C++ avant.

  4. #4
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    Si les données doivent être modifié tu peux utiliser un DataGrid.

    Si ce n'est pas le cas je te conseil d'utiliser un ListView en mettant son viewMode à "Details".
    Dans ce mode tu peux modifier la property "Columns" pour définir le nombre, les titres, les largeurs des colonnes.

    Un ListView est un controle qui possède une collection de ListViewItem.
    Un ListViewItem possède une property text qui sera le texte de la premiere collone ensuite tu met les autres colonnes dans la colection subItems.

    En gros ça donne.

    Tu balais tout les record reçu de ta DB pour chaque items

    ListViewItem lvi = new ListViewItem([Texte de la premiere colonne])
    lvi.subitems.add("[Texte de la colonne 2"]);
    lvi.subitems.add("[Texte de la colonne n"]);
    ListView.items.add(lvi)
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Par défaut
    Ok, je me lance! Je vais tenter.

    Bon but, par la suite, est de cliquer sur l'enregistrement voulu dans la listbox et d'ouvrir le formulaire correspondant.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Par défaut
    Je ne peux pas utiliser ListViewItem ainsi.

    Tu parles bien de VB.net 2005 aussi?

  7. #7
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    Result.DisplayMember = "Machine"

    C'est normal que tu ai Machine non ?
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 92
    Par défaut
    Bah ouais c'est normal.

    Et si je met :
    Result.DisplayMember = "Technicien"

    ... je vais avoir les noms des techniciens qui vont s'afficher.

    Mais comment je fais pour avoir le nom du technicien et le numéro de la machine par exemple?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/05/2014, 10h11
  2. [OpenOffice][Base de données] Afficher les données d'une table dans un formulaire
    Par Milapyl dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 05/03/2014, 21h31
  3. Afficher les données d'une table SQL dans un JComboBox
    Par bozmin dans le forum Composants
    Réponses: 1
    Dernier message: 13/11/2011, 18h29
  4. Réponses: 5
    Dernier message: 07/09/2006, 12h33
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

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