Valider modification dans listview et base de données

eneru

XLDnaute Nouveau
Bonjour,

J'ai un userform avec listview, combobox et textbox.
J'aimerais pouvoir valider les modification faite dans les textboxs dans la listview et dans la base données.
J'ai tenté d'adapté un code trouvé dans un fichier sur le forum mais sans succé.
Si quelqu'un pouvait me donner un coup de main ce serait sympa !

Cijoint.fr - Service gratuit de dépôt de fichiers

Merci
 

eneru

XLDnaute Nouveau
Re : Valider modification dans listview et base de données

Bonjour,

J'explique, quand je clique sur le bouton "recherche", il s'ouvre une fenetre avec listview et textbox. J'effectue une recherche à l'aide d'une textbox consacré à cela. Le résultat de la recherche s'affiche dans dans la listview. Enfin quand on clique sur une ligne de la listview, les informations qu'elle contient vont se placer dans dans des textboxs.
Ce que j'aimerais, c'est que je puisse modifier les informations de la ligne selectionné à partir des textboxs. Cette modication doit s'effectuer dans la listview et également dans la base de données (je le précise :D).

http://img265.imageshack.us/i/ecranh.png/

Uploaded with ImageShack.us

Je mets une petite copie d'écran pour visualiser.
 

skoobi

XLDnaute Barbatruc
Re : Valider modification dans listview et base de données

Bonjour eneru,

si tu ne connais pas bien "listview", je te conseille de lire ce tuto.

J'ai créé le code du bouton "modifier" pour mettre à jour la listview mais là plus le temps pour modifier la base de données.
Code:
Private Sub CommandButton5_Click()
With ListView1.SelectedItem
  .Text = DESIGNATION.Value
  .ListSubItems(2).Text = TextBox11.Value
  .ListSubItems(3).Text = TextBox4.Value
  .ListSubItems(4).Text = TextBox9.Value
  Debug.Print .Index 'affiche N° de la ligne de la sélection dans la fenêtre execution
 End With
End Sub
Au fait, à l'ouverture du fichier, corrige ceci :rolleyes::

Code:
Private Sub Workbook_Open()
'    frmAcceuil.Show False
    UserForm1.Show
End Sub

Bonne lecture.
 

eneru

XLDnaute Nouveau
Re : Valider modification dans listview et base de données

Re,

Tout d'abord merci pour ton aide.
Ton code marche, mais malheusement seulement pour modifier la listview. Il faudrait surtout que les modifications s'effectuent dans la base de données.

++

ps : Merci pour le tuto, mais je le connaissais, vu les nombreuses recherches que j'ai fait sur la listview :D. Il m'a d'ailleur déjà été très utile.
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Valider modification dans listview et base de données

Re,

Ton code marche, mais malheusement seulement pour modifier la listview

Bin c'est bien ce que j'ai dis dans mon message...:rolleyes:.

Pour la base de données, je te suggère d'ajouter une colonne cachée dans la listview dans laquelle tu écris le N° de ligne lorsque tu fais la recherche. Tu n'auras plus qu'à reprendre ce N° de ligne et faire coïncider la colonne de la feuille avec celle de la listview. D'après ce que j'ai vu dans le code, tu a l'air de t'y connaître en VBA, tu devrais pouvoir y arriver. Dans le cas contraire, reviens nous voir.
 

eneru

XLDnaute Nouveau
Re : Valider modification dans listview et base de données

Re,

Bin c'est bien ce que j'ai dis dans mon message....

Oups, autant pour pour moi, j'avais pas fait attention :eek:

J'ai pas vraiment saisi ton idée de collonne caché dans la listview, qui au passage existe déjà si tu fait gaffe (agrandit la derniere colonne de la listview avec le curseur, une colonne apparait avec le numéro de ligne).
En quoi ça va me permettre de modifier la base de données avec mes textboxs?

tu a l'air de t'y connaître en VBA, tu devrais pouvoir y arriver

Pas vraiment, je fait tout à taton, j'apprends sur le tas. Mais sur ce bouton "modifier" t'imagine pas combien d'essais de code j'ai essayé, sans succès :(
 

skoobi

XLDnaute Barbatruc
Re : Valider modification dans listview et base de données

Re bonjour eneru,

J'ai pas vraiment saisi ton idée de collonne caché dans la listview, qui au passage existe déjà si tu fait gaffe (agrandit la derniere colonne de la listview avec le curseur, une colonne apparait avec le numéro de ligne).
En quoi ça va me permettre de modifier la base de données avec mes textboxs?
Je vois que nous sommes sur la même longueur d'onde pour ce N° de ligne ;).

Voici concrètement ce que ça donne:

Code:
Private Sub CommandButton5_Click()
With ListView1.SelectedItem
'modification de la listview
  .Text = DESIGNATION.Value
  .ListSubItems(2).Text = TextBox11.Value
  .ListSubItems(3).Text = TextBox4.Value
  .ListSubItems(4).Text = TextBox9.Value
'on récupère le N° de ligne dans la listview:
  lig = CLng(.ListSubItems(6).Text)
  With rWs
'modification de la base de données
's'il s'agit de la famille peinture:
    .Cells(lig, 1).Value = DESIGNATION.Value
    .Cells(lig, 3).Value = TextBox11.Value
    .Cells(lig, 4).Value = TextBox4.Value
    .Cells(lig, 5).Value = TextBox9.Value
  End With
 End With
End Sub

A toi de compléter pour les autres familles car les colonnes ne se trouvent peut-être pas au même endroit.

Bon code.
 

Discussions similaires

Statistiques des forums

Discussions
299 706
Messages
1 978 621
Membres
206 308
dernier inscrit
thian