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 :

Charger ComboBox avant ouverture Form


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut Charger ComboBox avant ouverture Form
    Bonjour à tous,

    Une fois de plus, je me retourne vers vous pour avoir vos conseils.

    J'ai un Formulaire principal que nous appelerons Form1.
    Sur Form1, j'ai un bouton qui m'ouvre Form2.
    Dans ce Form2, j'ai une combobox que je charge (Sur Form_Load) à partir d'une table Access.
    Toutefois, comme la liste est conséquente, Form2 met un certain temps à s'ouvrir. De plus, cette liste est rechargée à chaque ouverture de Form2.

    Donc, est t'il possible de charger cette liste une seule fois lors de l'ouverture de mon application (sachant que pour différentes raisons un peu compliquées, je ne peux pas utiliser Sub Main) afin que je puisses ouvrir Form2 de façon plus souple ?

    Merci à tous

    Cordialement

    Christophe

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Par défaut
    Bonjours,

    a tu pensé a un backgroupworker ?

    je pense que c'est une bonne solution.

    @+++

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Salut,

    Merci de me répondre un dimanche.

    Je suis débutant en Vb.Net, alors, je ne sais pas du tout de quoi du me parles.

    Pourrai-tu me donner quelques précisions ?

    Cordialement

    Christophe

  4. #4
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Salut,

    Il serait plus judicieux de charger la table access dans une DataTable au début (form1)
    Après, il suffit de lié la DataTable au combobox au chargement de form2. Par contre, je ne sais pas si cela résoudera le problème d'affichage. A essayer.

    Pour le DataTable:http://plasserre.developpez.com/cour...bases-donnees2

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Salut Yonpo,

    Merci pour ces conseils.

    En tant que débutant, je me suis bien sur basé sur le Tuto de Philippe Lassere.
    J'ai également suivi tes conseils en chargeant ma DataTable à l'ouverture du Form1.
    Seulement, comme je déclare le DataSource à chaque ouverture de mon Form2, cela ne change effectivement rien.
    J'ai également essayé avec le DataReader.
    Il semblerait que cela aille plus vite à charger.
    Toutefois, j'ai une lacune.
    Je charge, en fait, 2 colonnes :
    La 1° est ma clé primaire (Long) qui reste en colonne cachée ;
    La seconde est ma valeur de champ (String).
    Dans l'exemple de Philippe Lasserre on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.Items.Add(myReader.GetString(0))
    pour charger la valeur String de la 1° colonne.

    Donc ma question est :
    Est-il possible de charger un combobox multicolonne avec DataReader ?

    Merci beaucoup

    Cordialement

    Christophe

  6. #6
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par marsouin_89 Voir le message
    Est-il possible de charger un combobox multicolonne avec DataReader ?
    Oui, mais il faudra personnaliser le combobox. Un très bon exemple pour toi ici

    Mais, tu n'as pas besoin de faire un combobox multicolonne si tu fais une requète ne retournant qu'une seule colonne. En locurence, la deuxième colonne (string)

  7. #7
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Salut Yonpo,

    Merci pour ta réactivité. C'est vraiment sympa.

    J'ai absolument besoin de ma 1° colonne, car je récupère cette valeur pour un autre traitement qui vient ensuite.
    J'avais déjà vu le Tuto du lien que tu m'as donné. C'est un peu chaud pour mes petites compétences, mais je vais me pencher dessus.

    Je te tiens au courant

    Encore merci

    Cordialement

    Christophe

  8. #8
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par marsouin_89
    Seulement, comme je déclare le DataSource à chaque ouverture de mon Form2, cela ne change effectivement rien.
    Il y a beaucoup d'enregistrement dans la table? Pour ma part, j'ai essayer avec plus de 2000 enregistrements et l'affichage reste correct.

    Si tu utilises un DataTable, tu pourrais l'utiliser afin de récupérer la valeur de la 1ère colonne pour l'autre traitement que tu veux faire.

    Je me pose une question: le chargement des données dans le datatable, où le fais-tu? Car si tu le fais au chargement du form2, c'est normal que ça prenne un peu de temps (ouverture de la connexion, chargement dans le datatable, chargement du datatable dans le combobox).

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

Discussions similaires

  1. [AC-2007] Execution de Form_current avant ouverture du form
    Par appocallypseman dans le forum Runtime
    Réponses: 1
    Dernier message: 14/09/2011, 19h28
  2. Charger application avant de la lancer
    Par Ulmo dans le forum Windows
    Réponses: 4
    Dernier message: 27/03/2006, 02h15
  3. Bouton submit grisé avant ouverture lien
    Par Ben42 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/01/2006, 17h04
  4. Problème ouverture form à partir d'une var
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 29/11/2005, 12h21
  5. [Téléphoner]Focus sur le tel + ouverture Form
    Par samlepiratepaddy dans le forum IHM
    Réponses: 2
    Dernier message: 05/11/2005, 22h06

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