Visual Basic - Problema al actualizar informacion en BD Acces desde Listview VB6.0

Life is soft - evento anual de software empresarial
 
Vista:

Problema al actualizar informacion en BD Acces desde Listview VB6.0

Publicado por Jose Espinal (1 intervención) el 12/05/2014 19:25:54
Amigos de éste foro buenos dias.
Tengo una tabla "ventas" y una "Det_venta", en mi aplicacion de vb6.0 tengo una ventana similar a la de una factura, donde va el Nº de serie, fecha, cliente, el importe total, y un Listview donde voy agregando uno o varios productos (Idprod, nomproducto, cantidad, p.unitario), cuando voy a registrar esa venta hago click en guardar se guarda en la tabla ventas: Idventa, idcliente, nº de serie, y el importe total, y en la tabla Det_venta se guarda: Idventa, Idetalle, idprod, cant, punitario.

No tengo problemas en guardar la venta con su detalle, el problema es que cuando quiero editar esa venta es decir quiero agregar un producto mas o sacar un producto de esa venta (del listview) y al momento de Actualizar la modificacion, en la tabla "Det_venta", solo actualiza un registro ya sea el primer registro o el ultimo adicionado, pero un solo registro es lo que actualiza.
Alguien me podría ayudar a resolver este problema que llevo varios dias tratando de solucionar y no logro hacerlo.

La BD es Acces y Visual Basic 6.0.

Gracias por su respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema al actualizar informacion en BD Acces desde Listview VB6.0

Publicado por Jose Espina (1 intervención) el 13/05/2014 06:12:11
Amigos de éste foro buenos dias.
Tengo una tabla "ventas" y una "Det_venta", en mi aplicacion de vb6.0 tengo una ventana similar a la de una factura, donde va el Nº de serie, fecha, cliente, el importe total, y un Listview donde voy agregando uno o varios productos (Idprod, nomproducto, cantidad, p.unitario), cuando voy a registrar esa venta hago click en guardar se guarda en la tabla ventas: Idventa, idcliente, nº de serie, y el importe total, y en la tabla Det_venta se guarda: Idventa, Idetalle, idprod, cant, punitario.

No tengo problemas en guardar la venta con su detalle, el problema es que cuando quiero editar esa venta es decir quiero agregar un producto mas o sacar un producto de esa venta (del listview) y al momento de Actualizar la modificacion, en la tabla "Det_venta", solo actualiza un registro ya sea el primer registro o el ultimo adicionado, pero un solo registro es lo que actualiza.
Alguien me podría ayudar a resolver este problema que llevo varios dias tratando de solucionar y no logro hacerlo.

La BD es Acces y Visual Basic 6.0.
Acá les dejo el codigo.
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
Amigos de éste foro buenos dias.
Tengo una tabla "ventas" y una "Det_venta", en mi aplicacion de vb6.0 tengo una ventana similar a la de una factura, donde va el Nº de serie, fecha, cliente, el importe total, y un Listview donde voy agregando uno o varios productos (Idprod, nomproducto, cantidad, p.unitario), cuando voy a registrar esa venta hago click en guardar se guarda en la tabla ventas: Idventa, idcliente, nº de serie, y el importe total, y en la tabla Det_venta se guarda: Idventa, Idetalle, idprod, cant, punitario.
 
No tengo problemas en guardar la venta con su detalle, el problema es que cuando quiero editar esa venta es decir quiero agregar un producto mas o sacar un producto de esa venta (del listview) y al momento de Actualizar la modificacion, en la tabla "Det_venta", solo actualiza un registro ya sea el primer registro o el ultimo adicionado, pero un solo registro es lo que actualiza.
Alguien me podría ayudar a resolver este problema que llevo varios dias tratando de solucionar y no logro hacerlo.
 
La BD es Acces y Visual Basic 6.0.
 
Gracias por su respuesta.='editor_code'>Sub Actualizar_venta()
        If rs.State = 1 Then rs.Close
        rs.Open "update ventas set iddoc= '" & Left(txtndoc.Text, 3) & "',fecha='" & dtfechventa & "',idcliente= '" & Left(txtcliente.Text, 4) & "',dscto= '" & txtdscto & "',importe='" & txtneto.Text & "'  where idventa ='" & txtidventa.Text & "'", cn, adOpenKeyset, adLockOptimistic
        rs.Open "select * from  ventas   where idventa ='" & txtidventa.Text & "'", cn, adOpenDynamic, adLockOptimistic
        rs.Fields("idventa") = txtidventa.Text
        rs.Fields("iddoc") = Left(txtndoc.Text, 3)
        rs.Fields("ndoc") = txtndoc.Text
        rs.Fields("fecha") = dtfechventa.Value
        rs.Fields("Idcliente") = Left(txtcliente.Text, 4)
        rs.Fields("dscto") = Val(txtdscto.Text)
        rs.Fields("importe") = txtneto.Text
        rs.Update
 
         'Codigo para la actualizacion de los datos del listview
         For i = 1 To lvdetalle.ListItems.Count
            det = lvdetalle.ListItems(i)
            prod = lvdetalle.ListItems(i).ListSubItems(1).Text
            prec = lvdetalle.ListItems(i).ListSubItems(4).Text
            cant = lvdetalle.ListItems(i).ListSubItems(5).Text
            If rs1.State = 1 Then rs1.Close
            rs.Open "UPDATE Det_venta SET idetalle='" & det & "', idprod='" & prod & "', punitario=" & prec & ", cant=" & cant & " where idventa='" & txtidventa.Text & "'", con, adOpenKeyset, adLockOptimistic
            rs.Open "Select * from Det_venta where idventa='" & txtidventa.Text & "' ", cn, adOpenKeyset, adLockOptimistic
            rs.Fields("Idventa") = txtidventa.Text
            rs.Fields("idetalle") = lvdetalle.ListItems(i)
            rs.Fields("idprod") = lvdetalle.ListItems(i).ListSubItems(1).Text
            rs.Fields("punitario") = lvdetalle.ListItems(i).ListSubItems(4).Text
            rs.Fields("Cant") = lvdetalle.ListItems(i).ListSubItems(5).Text
            rs.Update
        Next i
    End Sub


Gracias por su respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar