taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007
-
23 juin 2007 à 18:37
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007
-
2 juil. 2007 à 11:50
bonjour
j'ai un probléme au niveau de modification dans listview l'hourseque je fait la modification, elle effectuée toujours dans le premier ligne
voici le code :
Private Sub listview1_ItemClick(ByVal ItemValide As ListItem)
Dim a As Long
'On Error GoTo Aff_Err
'LongIndex = ItemValide.Index
a = ItemValide.Index
'KeyPress = ListView1.ListItems(LongIndex).SubItems(1)
MsgBox Err.Description, vbExclamation Or vbOKOnly, "Information utilisateur"
Err.Clear
End Sub
les information s'affiche dans listview grace a ce code
:
Public Sub list()
On Error Resume Next
Dim tva As Long
Dim pht As Long
Dim pttc As Long
Dim entete As ColumnHeader
Dim ligne As ListItem
ListView1.View = 3
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
Set entete = ListView1.ColumnHeaders.Add(, , "N°ordre", 1000)
Set entete = ListView1.ColumnHeaders.Add(, , "Code produit", 1700)
Set entete = ListView1.ColumnHeaders.Add(, , "Designation", 1600)
Set entete = ListView1.ColumnHeaders.Add(, , "Marque", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "Date Vente", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "Quantité sortie", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "PU", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "P.H.T", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "T.V.A", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "P.T.T.C", 1500)
If Err <> 3705 Then
table.Open "select * from ProduitVendus where [numfacture]='" & txtnfacture & "'", db, adOpenStatic, adLockOptimistic
End If
For i = 1 To table.RecordCount
Set ligne = ListView1.ListItems.Add(, , table.Fields("numordrevende"))
ligne.SubItems(1) = table.Fields("codeproduit")
ligne.SubItems(2) = table.Fields("Designation")
ligne.SubItems(3) = table.Fields("Marque")
ligne.SubItems(4) = table.Fields("date vente")
ligne.SubItems(5) = table.Fields("quantite sortie")
ligne.SubItems(6) = table.Fields("pu")
ligne.SubItems(7) = table.Fields("pht")
ligne.SubItems(8) = table.Fields("tva")
ligne.SubItems(9) = table.Fields("pttc")
table.MoveNext
Next i
For d = 1 To ListView1.ListItems.Count
tva = tva + Val(ListView1.ListItems(d).SubItems(8))
pht = pht + Val(ListView1.ListItems(d).SubItems(7))
pttc = pttc + Val(ListView1.ListItems(d).SubItems(9))
Next d
txttva = tva
txtpht = pht
txtpttc = pttc
table.Close
db.Close
pour modifier : dans autre form nommé frmvente
Private Sub Command3_Click()
Dim rep As String
rep = MsgBox("Voulez-vous modifier ce produit?", vbQuestion + vbYesNo, "création")
If rep = vbYes Then
ajoutvente
rv.Update
End If
Unload Me
voici le procedure :
Public Sub ajoutvente()
'rv.Fields("numordrevende") = frmvente.Text3
rv.Fields("codeproduit") = frmvente.Combo1
rv.Fields("quantite sortie") = frmvente.txtquantite
rv.Fields("tva") = frmvente.txttva
rv.Fields("pht") = frmvente.txtpht
rv.Fields("pttc") = frmvente.txtpttc
rv.Fields("numfacture") = frmvente.Text1
rv.Fields("pu") = frmvente.txtpu
rv.Fields("date vente") = frmvente.DTPicker1
rv.Fields("codetypeproduit") = frmvente.Text2
End Sub
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 23 juin 2007 à 19:32
Salut,
J'ai pas bien compris ton problème....Dans ta table cela modifie bien le bon enregistrement ou pas ? Si oui dans ta sub ajoutvente, c'est là que tu devrais faire le refresh de ta listview de l'item que tu as choisis.
Tu as deux solutions :
1 - Soit tu recharges ta listview via ta table
2- Soit dans ta sub : ajoutvente , tu modifies en même temps, ta ligne qui correspond à ton choix...
Si cela n'est pas ça précise plus " l'endoit " de ton code qui te pose problème..
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 juin 2007 à 16:21
Salut Exploreur,
outre ta remarque, il y a bien un paramètre manquant
Set ligne = ListView1.ListItems.Add(i, , table.Fields("numordrevende"))
d' autre part , pas besoin de la variable ligne pour remplir ta listview
il suffit de procéder ainsi:
With ListView1
For i = 1 To table.RecordCount
.ListItems.Add i, , table.Fields("numordrevende")
.ListItems(i).SubItems(1) = table.Fields("codeproduit")
.ListItems(i)..SubItems(2) = table.Fields("Designation")
...etc
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 24 juin 2007 à 16:45
Oui monsieur
Le problème se pose l'horse que j'ai deux enregistrements exemple :
Listview :
Code produit produit date de vente
1 souris 15/5/2006
2 clavier 19/5/2006
L’horse que je click sur le deuxième ligne pour la modifier. la modification effectuée toujours dans la première ligne.
remarque :
je modifier dans un autre forme nommé frmvente
L’horse que je click elle s'affiche
comme suit :
Code produit : ……………….
Produit : …………….....
Date de vente : ……………….
Les informations s’affiche de deuxième ligne mais la modification effectuée dans la premiére ligne
et merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 juin 2007 à 17:49
si tu es en VB6 Private Sub lvView_ItemClick ne se présente pas
tout à fait comme tu l' a décrit.
Chez moi c' est
Private Sub lvView_ItemClick(ByVal Item As MSComctlLib.ListItem)
pour récupérer la ligne sélectionnée je fais
cLigne=Item.index
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 24 juin 2007 à 20:22
oui le code affiche les information que je veux modifier dans une autre form comme je veux
mais l'horse que je click sur le boutton modifier
il ne fonction pas il modifier toujours premier ligne
voici le code :
Private Sub Command3_Click()
Dim rep As String
rep = MsgBox("Voulez-vous modifier ce produit?", vbQuestion + vbYesNo, "création")
If rep = vbYes Then
ajoutvente
rv.Update
End If
'rv.Requery
Unload Me
End Sub
'rv.Fields("numordrevende") = frmvente.Text3
rv.Fields("codeproduit") = frmvente.Combo1
rv.Fields("quantite sortie") = frmvente.txtquantite
rv.Fields("tva") = frmvente.txttva
rv.Fields("pht") = frmvente.txtpht
rv.Fields("pttc") = frmvente.txtpttc
rv.Fields("numfacture") = frmvente.Text1
rv.Fields("pu") = frmvente.txtpu
rv.Fields("date vente") = frmvente.DTPicker1
rv.Fields("codetypeproduit") = frmvente.Text2
remarque il y'a dans la table un champ clé numeroauto nommé (numordrevende)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 juin 2007 à 21:16
remarque il y'a dans la table un champ nommé (numordrevende)
Maintenant oui , ta question est complète !
Voici comment tu dois t'y prendre :
1° ce numéro auto doit fugurer dans une colonne de ta listview
que tu peux cacher si tu veux (Largeur de la colonne=0)
2° lorsque tu sélectionnes une ligne , tu le récupères et tu le passes
en paramètre à ta requete :
table.Open "select * from ProduitVendus where [numfacture]='" & _
"txtnfacture & "'where ChpNumeroAuto=" & VarNumAuto, db, adOpenStatic, adLockOptimistic
Ainsi ton recordset se pointera exactement sur celui que tu veux modifier
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 juin 2007 à 21:38
remarque :
Avec le paramètre numeroauto (numordrevende)tu sera tellement précis
que tu peux t' en passer du numerofacture
table.Open "select * from ProduitVendus where " & _
"[numordrevende]=" & VarNumAuto, db, adOpenStatic, adLockOptimistic
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 25 juin 2007 à 13:03
voici le code mais pas de resultat :
Public Sub list()
On Error Resume Next
Dim tva As Long
Dim pht As Long
Dim pttc As Long
Dim entete As ColumnHeader
Dim ligne As ListItem
ListView1.View = 3
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
Set entete = ListView1.ColumnHeaders.Add(, , "N°ordre", 0)
Set entete = ListView1.ColumnHeaders.Add(, , "Code produit", 1700)
Set entete = ListView1.ColumnHeaders.Add(, , "Designation", 1600)
Set entete = ListView1.ColumnHeaders.Add(, , "Marque", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "Date Vente", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "Quantité sortie", 1500)
Set entete = ListView1.ColumnHeaders.Add(, , "PU", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "P.H.T", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "T.V.A", 1200)
Set entete = ListView1.ColumnHeaders.Add(, , "P.T.T.C", 1500)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 25 juin 2007 à 13:55
comment veux tu qu' on s' y retrouve avec un code écrit d' un seul trait.
Une vrai torture pour les yeux et l' esprit !
Repostes le stp avec une mise en page correcte.
De toute façon et déjà ton rs doit être de type Dynamic
si tu veux pouvoir modifier quique ce soit
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 25 juin 2007 à 23:44
salut monsieur
pas de resultat
est-ce-que si possible de m'aider de corriger le problème direct
je peux vous envoyer mon projet dans votre e_mail
j'attend votre reponse ?
merci
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 26 juin 2007 à 00:38
Désolé monsieur taki...
On est prêt à t' aider sur le forum mais pas en privé.
Si tu savais le nombre de MP que je recois ...
Comprend bien qu' on a notre travail à nous et des obligations.
En plus c' est pas l' esprit du forum. On doit partager.
Pour ton problème, si ça marche pas avec ta façon de procéder,
essaies en une autre.D' autant plus que tu es débutant.Et c' est
comme ça qu' on apprend.
On a tout essayer au niveau du code mais c' est la manière de faire qui
n' aboutit pas.
Avec nos propres applications on se prend parfois la tête.Imagines un
peu avec le travail des autres.
Encore une fois désolé.
Bon courage.
PS: si tu veux on peut poursuivre sur ce même topic.
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 26 juin 2007 à 13:33
salut tous
je pose mon problème avec plus de dètail
j'ai une table nommé vente (les champs de plusieur table) voilâ les champs
numordervente (clé primaire)
n°facture (table de facture)
code produit (table de produit)
désignation (même table)
marque (table de marque)
quantité sortie
date de vente
prix unitaire
t.v.a
p.hors taxe
p.t.t.c
taki78
Messages postés37Date d'inscriptionlundi 12 mars 2007StatutMembreDernière intervention27 juillet 2007 26 juin 2007 à 13:59
salut tous
je pose mon problème avec plus de dètail
j'ai une table nommé vente (les champs de plusieur table) voilâ les champs
numordervente (clé primaire)
n°facture (table de facture)
code produit (table de produit)
désignation (même table)
marque (table de marque)
quantité sortie
date de vente
prix unitaire
t.v.a
p.hors taxe
p.t.t.c
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 26 juin 2007 à 14:00
Bon !
voici ce que je te propose de faire
Dans frmvente
>Ajoutes un TxtNumFacture dans frmvente pour stocker le Numéro de facture
>Ajoutes Ado
>Configures Ado (connectionString et RecordSource=TableVentes)
>Lies tes différents controls :
DataSource = Ado1
DataField= <Le champ concerné>
Fais tout ceci manuellement au début.Ensuite tu pourras le faire par code)
Loarsque tu récupère le n° de facture à partir de la listview
passes le en paramètre à ta Sql
Charges ta feuilleVente (LoadfrmVente)
Redéfinies le RecordSource de Ado1 comme étant ta Sql
Fais un Move First
Puis frmVente.Show 1
Modifies ce que tu veux dans ta facture et sur la ligne que tu veux,
puisque tu auras la possibilité de te déplacer dans les lignes de la facture
avec ton control Ado.
Lorsque tu déchargeras ta frmVente avec un Boutton "Terminer"
tu rafraichis ta listview en la remplissant de nouveau .
Voilà ce que je peux te proposer pour l' instant.
Essaies ceci pour l' instant. Après tu passeras à la vitesse supérieure
en configurant tout par code.