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

Windows Forms Discussion :

[VB.NET] Quel argument?


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut [VB.NET] Quel argument?
    Bonjour,

    Je souhaite faire un chargement par défaut de plusieurs combox qui se retrouvent sur plusieurs windowsforms.

    Pour ca j'ai créer un module:

    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
    Imports System.Data
    Imports System.Data.OleDb
     
    Module Connection_DB
        'Déclaration des variables de connection à la BDD
        Public BDDConnection As OleDbConnection
        Public BDDCommand As OleDbCommand
        Public BDDDataAdapter As OleDbDataAdapter
        Public BDDDataSet As New DataSet()
        Public Requete As String
        Public BDDDataTable As DataTable
        Public BDDDataRow As DataRow
        Public RowNumber As Integer
        Public ParametreConnection As String
        Public BDDCommandBuilder As OleDbCommandBuilder
     
        Function ConnecDB(ByVal Requete As String, ByVal Nom_Table As String)
            BDDDataSet = New DataSet()
            BDDConnection = New OleDbConnection()
            BDDConnection.ConnectionString = ParametreConnection
            Try
                BDDConnection.Open()
            Catch
                MsgBox("Vous devez ouvrir une Base de donnée Access avant toute opération.")
            End Try
            BDDCommand = New OleDbCommand(Requete)
            BDDDataAdapter = New OleDbDataAdapter(BDDCommand)
            BDDCommand.Connection() = BDDConnection
            BDDDataAdapter.Fill(BDDDataSet, Nom_Table)
            BDDConnection.Close()
            Return BDDDataSet
        End Function
     
        Function Load_def()
            Dim nb_champs As Integer
     
            BDDDataSet = New DataSet()
            ConnecDB("SELECT * FROM Pays", "Pays")
     
            nb_champs = BDDDataSet.Tables("Pays").Rows.Count
     
            RowNumber = 0
            While RowNumber < nb_champs
                Me.ComboBox_Pays.Items.Add(BDDDataSet.Tables("Pays").Rows(RowNumber).Item("Pays").ToString())
                RowNumber = RowNumber + 1
            End While
     
            BDDDataSet = New DataSet()
            ConnecDB("SELECT * FROM Départements", "Dep")
     
            nb_champs = BDDDataSet.Tables("Dep").Rows.Count
     
            RowNumber = 0
            While RowNumber < nb_champs
                Me.ComboBox_CP.Items.Add(BDDDataSet.Tables("Dep").Rows(RowNumber).Item("NumDépartement").ToString())
                Me.ComboBox_Dep.Items.Add(BDDDataSet.Tables("Dep").Rows(RowNumber).Item("Département").ToString())
                RowNumber = RowNumber + 1
            End While
     
            BDDDataSet = New DataSet()
            ConnecDB("SELECT * FROM Villes", "Villes")
     
            nb_champs = BDDDataSet.Tables("Villes").Rows.Count
     
            RowNumber = 0
            While RowNumber < nb_champs
                Me.ComboBox_Ville.Items.Add(BDDDataSet.Tables("Villes").Rows(RowNumber).Item("Ville").ToString())
                RowNumber = RowNumber + 1
            End While
        End Function
     
    End Module
    C'est donc ma fonction Load_Def qui s'en occupe. Mon problème est que je ne sais pas quel argument lui faire passer pour changer les combobox dans les formulaires.

    Merci!

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    si j'ai bien compris ton pb, tu veux charger plusieurs combo de facon plus ou moins generique dans tes formulaires ?

    pourquoi ne pas passer les combobox en reference a ta fonction de chargement ???

    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Function Load_def(byref cbo as combobox)
     
           BDDDataSet = New DataSet()
            ConnecDB("SELECT * FROM Pays", "Pays")
     
            For Each dr as Datarow in BDDDataSet.Tables("Pays").Rows
                cbo.Items.Add(dr.Item("Pays").ToString())
            End While
     
    End Function
    Apres, ca me semble relativement....sale (variables globales, BDDDataSet qui se balade de partout, melange de code SQL et d'elements graphique...)

    Jete un oeil sur ce tuto, si tu as un peu de temps :
    http://johannblais.developpez.com/tu...acces-donnees/

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    Hello

    Sale? c'est a dire? J'ai commencé le VB y'a une semaine et j'ai donc demandé à un ami qui développe de m'envoyer un projet à lui que je modifie afin qu'il corresponde à mes besoins.

    En fait, j'ai une dizaine de form différents qui contiennent chacun 4 mêmes combobox. Je voulais donc créer une fonction qui me load par défaut ces combobox avec les valeur correspondantes. Ta fonction me permet seulement de remplir un type de combobox par les valeures correspondantes.

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Ta fonction me permet seulement de remplir un type de combobox par les valeures correspondantes.
    Normal, c'etait un exemple

    L'idee, c'est de diminuer les dependances entre ton interface graphique et le reste...

    Si vraiment, tu as plein d'endroit ou tu retrouves les memes combo, ca veut probablement dire que tu as interet a en faire un UserControl (si c'est bien comme ca que ca s'appelle en WinForm...)

    Comme ca, tu n'as pas a faire des copier-coller de combo a droite et a gauche, et une modif n'impacte que le user control

    (apres, tu ferais encore mieux de deplacer ton code d'acces aux donnees dans une seconde classe-> diminution des dependances entre tes combo et ta base...)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    Hello

    ouais en fait j'suis bete ta fonction est largement plus simple

    Merci pour les conseils!

    Tu n'aurais pas un site qui documente l'utilisation d'outlook dans des programmes en VB.NET? (utilisation répertoire, agenda, ...) J'ai cherché pas mal sur le net mais c'est très peu documenté

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

Discussions similaires

  1. [Migration .NET] Quels arguments pour cela ?
    Par chris92 dans le forum Général Dotnet
    Réponses: 17
    Dernier message: 01/06/2007, 19h03
  2. Réponses: 5
    Dernier message: 08/02/2006, 10h52
  3. Réponses: 2
    Dernier message: 14/10/2005, 17h05
  4. Réponses: 7
    Dernier message: 21/02/2005, 13h28
  5. [VB.NET] Quel objet tableau pour une recherche indexée ???
    Par Kitano dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/09/2004, 09h38

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