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 :

Comment remplir une liste d'une base Access


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut Comment remplir une liste d'une base Access
    Bonjour, le sujet est dans l'intitulé du message. Tout simplement je n ariive pas a remplir une liste d'une base de données Access.

    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
     Dim i As Integer
                        Dim Listbox1 As New ComboBox
                        While cRepertoire <> ""
                            dsFB.Clear()
                            '    MsgBox("Dans Manu " & cRepertoire & "  " & cKey)
                            istat = Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
                            cRepertoire = cRepertoire.Replace("n", "")
                            cKey = CType(Val(cKey) + 1, String)
                            Listbox1.Items.Add(cRepertoire)
                        End While
                        SQLadd = "SELECT * FROM  Liste_FB "
                        cmd.CommandText = SQLadd
                        cmd.Connection = cn
                        cmd.ExecuteNonQuery()
                        cbListeFB = New OleDbCommandBuilder(da1)
                        da1.SelectCommand = cmd
                        da1.Fill(dsFB, "ListeFB")
                        dtt = dsFB.Tables("ListeFB")
                        Dim j As Integer
     
                        For i = 0 To dtt.Rows.Count - 1
                            For j = 0 To Listbox1.Items.Count - 2
     
                                MsgBox(Listbox1.Items(j))
                                dsFB.Tables("ListeFB").Rows(i).Item("FB_ID_format") = Listbox1.Items(j)
                                'dsFB.Tables("ListeFB"). = Listbox1
                            Next
                            'dtt = dsFB.Tables("ListeFB")
                        Next
                        da1.Update(dsFB, "ListeFB")
                        dsFB.AcceptChanges()
    J'ai comme résultat le remplissage de la colonne de seulement le dernier item de la Listview. Alors que je parcours bien la ListView et que je rempli la colonne. Mais la valeur est ecrasé sur le premier index. Et je ne voi pas comment changé d'index.
    Pour info les valeurs de la ListVIew sont issu d'un fichier de parametrage .ini.
    Merci de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Alors les développeurs, vous êtes là ??

    Personne n'a une petite piste ??

    J'ai bo chercher, je trouve rien !!!

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Je comprends pas ton code et je ne vois pas de listview mais une combobox !! que tu as appellée listbox ^^
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Oui en fait j'ai fai une modif pensant que le résultat pourrait avancée...
    Pou être plus clair, je charge des données dans un combobox ou bien une listview peut importe cela ne sert que de passerelle. Les données sont issues d'un fichier .ini. Le souci n'est pas la puisque je les récupèrent (dans un listview ou combobox) mais plutot au niveau de la sauvegarde de ses données dans une base de données.
    Donc 2 choix s'offrent a priori a moi c'est la le pb)
    - une commande SQL insérant un nouvel enregistrement dans la colonne qui va bien.
    - passer par un Dataset, en ajoutant un enregistrement.

    Et comme résultat de mon programme (pas tres clair, il est vrai.. je débute ) j'ai le dernier élément du Combobox. Les éléments sont écrasés.

    Voila j'espere avoir été plus clair.
    En tout cas je te remercies Aspic pour ton aide !

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Bah oui fais une requete Insert dans ta BDD pour enregistrer... Ou est le soucis exactement ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    La requète !!! Et oui je ne vois pas bien comment faire, en plus j'étais partie vers le DataSet et en fait c'est la galère...

    Si tu as une idée de la requète... J'écume les tutos en attendant une éventuelle proposition.

    Merci

    Damien

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    D'après le tuto de Développez : tuto
    il faut un constructeur de lignes valuées pour ajouter plusieurs enregistrements !! Je trouve ca abérant ! ou je me trompe ?

    En tout cas je suis coincé !

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Donc alors ce tutos et pour toi :
    Tutos Access
    Bonne chance
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    J'ai essayé de procédé avec un UPDATE puis un UPDATE SET comme tu me l as conseillé mais ca ne fonctionne pas.
    J'ai bien des données qui dans les champ que je souhaite mais pas sous forme de liste. Cela ecrase la valeur précédente. Je ne vois pas bien comment faire. Es ce un pb de requete ou plutot de ma méthode ?? (ou les 2 ... )

    Damien

    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
     
                        Dim i, j, pe, taille As Integer
                        For i = 0 To Val(TextBox2.Text) - 1
                            pe = Val(TextBox1.Text) + i
                            taille = CType(pe, String).Length
                            adr = CType(pe, String)
                            For j = Val(taille) To 2
                                adr = "0" & adr
                            Next
                            SQLREQ = "INSERT INTO Liste_FB (FB_adr)" & _
                             "VALUES ('" & adr & "')"
                            ExecuteCommand(SQLREQ)
                        Next
                        While cRepertoire <> ""
                            'MsgBox("Dans Manu " & cRepertoire & " " & cKey)
                            istat = Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
                            cRepertoire = cRepertoire.Replace("n", "")
                            cKey = CType(Val(cKey) + 1, String)
                            ComboBox1.Items.Add(cRepertoire)
                        End While
     
                        Dim k As Integer
                        For k = 0 To ComboBox1.Items.Count - 2
                            ' SQLREQ = "insert into Liste_FB (FB_ID_format) values ('" & ComboBox1.Items.Item(k) & "')"
                            SQLREQ = "UPDATE  Liste_FB SET FB_ID_format='" & ComboBox1.Items.Item(k) & "'"
                            ExecuteCommand(SQLREQ)
                        Next

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Je n'ai pas encore testé mais je crois tenir une solution. Elle consiste dans le fait de rajouter une table qui contiendrai les variables du fichier .ini, et d'ensuite en lié les valeurs dans Access. Tout simplement.
    Je vous tiens au courant de mon avancé et posterai le code si le résultat est concluant.

    Damien.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Donc voila avec l'aide d'un collegue jai trouvé une solution a mon pb.
    Je cré une table Init dans laquelle j'inclu les données que voulue provenant du fichier .ini. Ensuite dans Access je lis la colonne de la table .ini et le tour est joué !

    Le code en est forcément réduit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                        While cRepertoire <> ""
                            istat = Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
                            cRepertoire = cRepertoire.Replace("n", "")
                            cKey = CType(Val(cKey) + 1, String)
                            SQLREQ = "INSERT INTO Init (FB)" & _
                            "VALUES ('" & cRepertoire & "')"
                            ExecuteCommand(SQLREQ)
     
                        End While
    Merci a toi Aspic pour ton aide et tes tutos qui me serviront bien je crois.

  12. #12
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    De rien

    Bonne chance.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2015, 17h52
  2. [débutant] Comment gérer une liste dans une liste
    Par Lenoiche dans le forum iReport
    Réponses: 0
    Dernier message: 16/07/2008, 10h41
  3. Comment tester la présence d'une valeur dans une liste?
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/06/2008, 16h09
  4. Réponses: 35
    Dernier message: 21/03/2007, 10h36
  5. Réponses: 4
    Dernier message: 07/08/2006, 17h01

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