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 :

Problème d'affichage > listbox > vb.net et access 2010


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Par défaut Problème d'affichage > listbox > vb.net et access 2010
    Bonjour à tous,

    J'ai une application a développer en vb.net 2010 (Visual Studio) avec une base MS Access 2010.
    La première partie de mon programme était de permettre aux rééducateurs de pouvoir enregistrer les actes de la semaine dans une table appeler "acte".
    La deuxième partie est de s'occuper de la modification (pour le chef de service).
    Voici le problème :
    Quand le rééducateur rentre dans son espace pour enregistrer ses actes de la semaine, il a dans cette interface un bouton permettant d'aller dans un autre formulaire dans lequel il y a un listbox auquel on doit sélectionner l'enregistrement a modifier mais rien ne s'affiche.

    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
    '_________________________REMPLIR LA LISTE D'ENREGISTREMENT A MODIFIER________________________________________________________________________________________
     
            'Récupérer le numéro du rééducateur afin d'afficher ses enregistrements
            fourthSQL = "SELECT DISTINCT * FROM reeducateur"
            dta.SelectCommand.CommandText = fourthSQL
            dta.Fill(dts, "reeducateur")
     
            For i = 0 To dts.Tables("reeducateur").Rows.Count - 1
                Dim nomReeducateur As String = frmBReeducateur.lblAfficherReeducConnecter.Text
                If nomReeducateur = dts.Tables("reeducateur").Rows(i).Item("nomReeduc") Then
                    Dim noReeducateur As Integer = dts.Tables("reeducateur").Rows(i).Item("noReeduc")
     
                    'Liste des enregistrements de la table Actes
                    firstSQL = "SELECT DISTINCT * FROM acte WHERE noReeduc =" & noReeducateur & " ORDER BY nomUsager ASC"
                    dta.SelectCommand.CommandText = firstSQL
                    dta.Fill(dts, "acte")
     
                    For j = 0 To dts.Tables("acte").Rows.Count - 1
                        'Récupérer tous les champs de la table acte dans des variables
                        Dim varNoUsager = dts.Tables("acte").Rows(i).Item("noUsager")
                        Dim varNomUsager = dts.Tables("acte").Rows(i).Item("nomUsager")
                        Dim varPrenomUsager = dts.Tables("acte").Rows(i).Item("prenomUsager")
                        Dim varNoReeduc = dts.Tables("acte").Rows(i).Item("noReeduc")
                        Dim varNoSem = dts.Tables("acte").Rows(i).Item("noSem")
                        Dim varMois = dts.Tables("acte").Rows(i).Item("mois")
                        Dim varTypeSemaine = dts.Tables("acte").Rows(i).Item("typeSemaine")
                        Dim varDeplacements = dts.Tables("acte").Rows(i).Item("deplacements")
                        Dim varVisitesMedicales = dts.Tables("acte").Rows(i).Item("visitesMedicales")
                        Dim varJourneesExceptionnelles = dts.Tables("acte").Rows(i).Item("journeesExceptionnelles")
                        Dim varRencontreFamilles = dts.Tables("acte").Rows(i).Item("rencontreFamilles")
                        Dim varReunions = dts.Tables("acte").Rows(i).Item("reunions")
                        Dim varInterventiontsTelephoniques = dts.Tables("acte").Rows(i).Item("nbActe")
                        Dim varNbActes = dts.Tables("acte").Rows(i).Item("nbActe")
     
                        frmSelectActe.lstSelectActes.Items.Add(varNomUsager & " " & _
                                                                varPrenomUsager & " " & _
                                                                varNoSem & " " & _
                                                                varMois & " " & _
                                                                varNbActes)
     
                    Next
                End If
            Next
    Pouvez-vous m'aider s'il vous plais ???

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Bonjour,

    Je me permet plusieurs remarques.

    Dans votre code vous ajoutez tous les actes de tous les rééducateur. Je pense que vous vous voulez seulement tous les actes d'un rééducateur non ? (EDIT : désolé je n'ai pas vu le IF - Un if sur un nom n'est peut être pas la meilleur idée, un nom n'ai pas unique.
    Vous pouvez également faire des SELECT sur des Datatables afin d'ajouter une condition et de vous évitez une boucle plus longue avec un if au début. )
    Je pense que vous ne devriez pas mettre le DISTINCT.
    Je vous conseille de faire des classes, plutôt que de déclaré X variables. Cela sera plus facilement exploitables par la suite.

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Par défaut
    Je vous remercie pour ces conseils, pouvez-vous développez un peu avec un petit exemple svp

    Merci d'avance pour votre aide...

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    Je plussoie les remarques déjà faites.

    Pourriez-vous poster la définition de vos tables dans la DB ? Nous pourrons alors vous aider plus avant.

    Le bout de code que vous montrer, s'effectue-t-il sur le formulaire nommé frmSelectActe ? Si oui, utilisez le mot clef Me.

    Je pense qu'il serait préférable de typer vos variables dans lesquelles vous affectez les valeurs récupérées de la DB. En effet, la méthode dts.Tables("acte").Rows(i).Item("noUsager") retourne un objet de type Object (en caricaturant, sans type défini). En typant cela, vous vous faciliterez la vie car vous aurez alors accès aux fonctionnalités souvent fort pratique qu'offre le type en question. En plus, ce sera beaucoup plus propre et facilitera le travail du compilateur.

    Pour vous donner une idée, ajoutez ces deux lignes tout en haut de votre page de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit On
    Option Strict On

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si frmSelectActe n'est pas me, où est déclarée cette variable ?
    si vous utilisez directement le nom du form le problème doit venir de là


    avez vous fait du pas à pas pour voir ce qui se passe ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    si frmSelectActe n'est pas me, où est déclarée cette variable ?
    si vous utilisez directement le nom du form le problème doit venir de là


    avez vous fait du pas à pas pour voir ce qui se passe ?
    frmSelectActe est un formulaire pas une variable comme vous l'avez deviné.
    Pour le pas à pas vous avez bien fait de poser la question :
    Quand le code est tel que je vous l'ai donné, alors la variables de la première boucle for "nomReeduc" est vide, et donc la suite ne peut pas arrivé, et :
    Quand je garde seulement la deuxième boucle for et je met le restre en commentaire (1er boucle for + condition if) alors tout les rééducateur on tous les enregistrement de tout le monde se qui est logique vu qu'il n'y a pas de condition !
    Pouvez-vous m'aider à faire cette condition svp, voici le code avec les commentaire :
    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
    '_________________________REMPLIR LA LISTE D'ENREGISTREMENT A MODIFIER________________________________________________________________________________________
     
            'Récupérer le numéro du rééducateur afin d'afficher ses enregistrements
            fourthSQL = "SELECT DISTINCT * FROM reeducateur"
            dta.SelectCommand.CommandText = fourthSQL
            dta.Fill(dts, "reeducateur")
     
            'For i = 0 To dts.Tables("reeducateur").Rows.Count - 1
            'Dim nomReeducateur As String = frmBReeducateur.lblAfficherReeducConnecter.Text
            'If nomReeducateur = dts.Tables("reeducateur").Rows(i).Item("nomReeduc") Then
            'Dim noReeducateur As Integer = dts.Tables("reeducateur").Rows(i).Item("noReeduc")
     
            'Liste des enregistrements de la table Actes
            firstSQL = "SELECT * FROM acte ORDER BY nomUsager ASC"
            dta.SelectCommand.CommandText = firstSQL
            dta.Fill(dts, "acte")
     
            For i = 0 To dts.Tables("acte").Rows.Count - 1
                'Récupérer tous les champs de la table acte dans des variables
                Dim varNoUsager = dts.Tables("acte").Rows(i).Item("noUsager")
                Dim varNomUsager = dts.Tables("acte").Rows(i).Item("nomUsager")
                Dim varPrenomUsager = dts.Tables("acte").Rows(i).Item("prenomUsager")
                Dim varNoReeduc = dts.Tables("acte").Rows(i).Item("noReeduc")
                Dim varNoSem = dts.Tables("acte").Rows(i).Item("noSem")
                Dim varMois = dts.Tables("acte").Rows(i).Item("mois")
                Dim varTypeSemaine = dts.Tables("acte").Rows(i).Item("typeSemaine")
                Dim varDeplacements = dts.Tables("acte").Rows(i).Item("deplacements")
                Dim varVisitesMedicales = dts.Tables("acte").Rows(i).Item("visitesMedicales")
                Dim varJourneesExceptionnelles = dts.Tables("acte").Rows(i).Item("journeesExceptionnelles")
                Dim varRencontreFamilles = dts.Tables("acte").Rows(i).Item("rencontreFamilles")
                Dim varReunions = dts.Tables("acte").Rows(i).Item("reunions")
                Dim varInterventiontsTelephoniques = dts.Tables("acte").Rows(i).Item("nbActe")
                Dim varNbActes = dts.Tables("acte").Rows(i).Item("nbActe")
     
                frmSelectActe.lstSelectActes.Items.Add(varNomUsager & " " & _
                                                        varPrenomUsager & " " & _
                                                        varNoSem & " " & _
                                                        varMois & " " & _
                                                        varNbActes)
     
            Next
            'End If
            'Next

  7. #7
    Membre confirmé
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Par défaut
    En effet des lors où nous cliquons sur le bouton modifier du formulaire "frmBreeducateur" alors la listbox du formulaire "frmSelectActes" doit afficher les enregistrement précédemment enregistrer (mais seulement celui du rééducateur connecter)

    Voici les champs de la table "acte"
    Champ1 : noActe //NuméroAuto
    Champ2 : noUsager //Numérique : numéro de l'usager
    Champ3 : nomUsager //Texte : nom de l'usager
    Champ4 : prenomUsager //Texte : prénom de l'usager
    Champ5 : noReeduc //Numérique : numéro du rééducateur
    Champ6 : noSem //Numérique : numéro de semaine
    Champ7 : mois //Texte : en plus du numéro de semaine il faut savoir à quel mois il correspond
    Champ8 : typeSemaine //Texte : le type de la semaine
    Champ9 : deplacements //Numérique
    Champ10 : visitesMedicales //Numérique
    Champ11 : journeesExceptionnelles //Numérique
    Champ12 : rencontreFamilles //Numérique
    Champ13 : reunions //Numérique
    Champ14 : interventiontsTelephoniques //Numérique
    Champ15 : nbActe //Numérique : Somme des (Champ9 à Champ14)
    Et Voici un enregistrement fictif :
    noActe : 6329
    noUsager : 251
    nomUsager : Dupont
    prenomUsager : Jean
    noReeduc : 15
    noSem : 12
    mois : Mars
    typeSemaine : 1C
    deplacements : 2
    visitesMedicales : 3
    journeesExceptionnelles : 1
    rencontreFamilles : 4
    reunions : 3
    nbActes : 13
    Je viens de copier votre code, les deux lignes que vous m'avez donné plus haut.
    Comment les faire ceci :
    Citation Envoyé par Kropernic Voir le message
    Je pense qu'il serait préférable de typer vos variables dans lesquelles vous affectez les valeurs récupérées de la DB. En effet, la méthode dts.Tables("acte").Rows(i).Item("noUsager") retourne un objet de type Object (en caricaturant, sans type défini). En typant cela, vous vous faciliterez la vie car vous aurez alors accès aux fonctionnalités souvent fort pratique qu'offre le type en question. En plus, ce sera beaucoup plus propre et facilitera le travail du compilateur.
    Merci encore pour votre aide...

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

Discussions similaires

  1. Problème d'affichage de listbox a textbox
    Par BERRACHED SAID dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2013, 19h45
  2. [AC-2000] problème d'affichage de listbox
    Par nico84 dans le forum IHM
    Réponses: 0
    Dernier message: 22/09/2009, 15h26
  3. problème d'affichage dans listbox
    Par azräel dans le forum VB.NET
    Réponses: 6
    Dernier message: 06/11/2008, 10h39
  4. Réponses: 4
    Dernier message: 09/05/2008, 23h44
  5. [CR][ASP.NET] Problème d'affichage du rapport
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 20/04/2004, 12h39

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