Access - INVENTARIOS

 
Vista:

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 03:25:50
Buenas noches.

Ojala me puedan ayudar.

Tengo una base de datos de un almacén, tengo una tabla ventas con un subformulario ventas_detalle lo que necesito hacer es que cada ves que guarde la venta me descuente la cantidad que se esta vendiendo de la cantidad en inventarios ( nombre de la tabla donde guardo la cantidad en existencia ) tengo un botón en el formulario de ventas que al guardar debería de hacer eso pero solamente me modifica la cantidad del primer registro osea de un solo producto pero con la cantidad de toda la venta, el código que tengo es el siguiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CmdGuardar_Click()
Dim rsInv As DAO.Recordset
Dim sqlInv As String
Dim cantDesc As Double
Dim idPro As Long
Dim cantLista As Integer
 
cantLista = Me.C_Detalle_Subformulario.Form.RecordsetClone.RecordCount
 
For cont = 1 To cantLista
    idPro = Me.C_Detalle_Subformulario!ID_PRODUCTO
    cantDesc = Me.C_Detalle_Subformulario!CANTIDAD
    sqlInv = "SELECT * FROM INVENTARIOS WHERE FID_PRODUCTO=" & idPro
    Set rsInv = CurrentDb.OpenRecordset(sqlInv)
    rsInv.Edit
    rsInv!cantidad_en_exhibicion = rsInv!cantidad_en_exhibicion - cantDesc
    rsInv.Update
Next cont
 
rsInv.Close
Set rsInv = Nothing
 
MsgBox "LA VENTA HA SIDO GRABADO"
End Sub

No me sale ningún error pero como lo dije solo me modifica la cantidad de un solo producto y me resta la cantidad de toda la venta.

Muchas gracias.
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
sin imagen de perfil

INVENTARIOS

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/02/2016 09:10:21
Normal, en ninguna línea del código se hace referencia a que 'pase al siguiente registro' y menos mal que se genera un código que toma como punto de referencia el numero de registros, de hacerlo de otra forma (tal vez mas adecuada) se entraría en un bucle infinito.

Tras guardar el registro actualizado, se tendrá que desplazar al siguiente (o volverá a manipular el mismo) con lo que se manipulara el mismo, tantas veces como registros existan en ese subformulario (que hay tres registros: descontara la cantidad tres veces, que hay cien ... pues descontara cien veces lo mismo 'al mismo')

El código tiene algunos planteamientos inadecuados:

.- Si se utiliza el 'RecodsetClone' para conocer el numero de elementos ¿Por qué después se 'acude' al registro físico para manipular los datos? (mas trabajo para la maquina y la pantalla puede parpadear ya que se cambiaria de registro).

.- No veo que supuesta ventaja tie el 'individualizar' el proceso de crear un recordset y ajustar la cantidad registro a registro

.- Una programación eficiente lo abriría la primera vez (antes del bucle), localizaría el Item en cada paso del bucle y al finalizar (el bucle) cerraría el recordset.

.- Aunque la 'eficiencia eficiente' consistiría en recorrer el conjunto de registros mediante su 'RecordsetClone' y en cada paso ejecutar una 'consulta de actualización' y mas eficiente si se aplica el método 'Execute' (además, sobrarían la mitad o mas de esas variables).
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

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 12:10:03
Hola!

Bueno pues la verdad no soy experto en esto de programar en realidad lo que he hecho hasta ahora ha sido con lo que e leído y pues intentando e intentando logre llegar a esto pero veo que por lo que dices esta muy mal jejej.

Te agradecería mucho si me pudieras ayudar a arreglar esto

Gracias.
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
sin imagen de perfil

INVENTARIOS

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/02/2016 13:25:50
Y en que hilo, en este con ese 'código tan curioso' o en el que tiene el titulo 'bucle infinito' y que no se parece en nada a este en el contexto del código (que además esta comentado)
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

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 13:31:36
En este, lo que pasa es que intente hacerlo con el que esta en esa publicación pero tampoco me funciono.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil

INVENTARIOS

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/02/2016 16:35:49
Al que lo propuso le funciono, al que lo utilizo le funciono ...

Lo que tu has hecho (si es que has intentado emularlo) solo lo sabes tu y de ello solo dices 'no funciona' (sin mas datos ni exponer el fracasado intento).

Comprenderás que para jugar a las adivinanzas hay otros foros, ese es de programación y se trabaja con conceptos y exposiciones claras tanto del utópico proyecto, como de lo real que se va creando, para que ante una dificultad CONCRETA ('no me funciona' es ABSTRACTA) se puedan dar consejos o guías.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 17:08:38
Si claro pues como lo indique el inconveniente es que me descuenta la cantidad de toda la venta a un solo registro, pues no se como hacer para que me pase al siguiente registro del subformulario y según el código del producto me descuente la cantidad pero no he logrado hacer eso no se si me puedas colaborar con eso en realidad apenas estoy empezando y pues no se si necesitas mas datos o no se ojala me puedas ayudar.

Gracias
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
sin imagen de perfil

INVENTARIOS

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/02/2016 19:10:14
Si estas comenzando, utiliza las herramientas mas idóneas que no el copiar soluciones que no analizas lo suficiente como para poder adaptarlas.

Normalmente los detalles de una venta se guardan en una tabla (con el resto de los demás detalles del resto de las ventas) y se distinguen (o forman subgrupos) por la relación que tienen con la venta (y que suele estar en el formulario principal).

¿Qué tal se te da el crear consultas en modo grafico (con el asistente de Access)?

Si creamos una consulta (en principio de selección, mas tarde de actualización) paso a paso, entenderías un poco el proceso a trabajar y te seria útil para futuras ocasiones.
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

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 19:50:15
Bueno en realidad apenas estoy comenzando, de las consultas se muy poco pero me gusta mucho esto de programar .

A lo que te refieres es a que realice una consulta de selección de la tabla ventas_detalle para que? no entiendo esa parte
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
sin imagen de perfil

INVENTARIOS

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/02/2016 21:03:37
¿Para aprender a seleccionar 'una parte del todo'?....

Y después a 'sincronizar' la parte con el objeto activo (el formulario)

Al final se llega desde el principio, pero 'pasando por el medio' (los libros son algo mas que el prologo y la palabra fin)
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

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 21:15:36
A ok voy a intentar realizar lo que me dices.

Muchas gracias
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

INVENTARIOS

Publicado por jose (830 intervenciones) el 22/02/2016 16:49:57
Hola Santiago

la forma en que tu quieres actualizar el inventario es una forma que no te permite ninguna comprobación en caso de problemas, que por cierto siempre aparecen .



Por ello una forma de hacerlo es las existencias iniciales pueden estar en la ficha del articulo o en una linea de la tabla de detalle inventario.
Despues las entradas y las salidas estaran en registros de la tabla detalle inventario

de esta forma para saber el saldo se suman las entradas y se restan las salidas

con este metodo simpre podemos ver del porque de ese saldo


los datos calculados de los que no se pueda conocer el origen ni comprobacion posible no da mas que rompederos de cabeza


Jose manuel
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

INVENTARIOS

Publicado por Santiago Vargas (8 intervenciones) el 22/02/2016 17:10:47
Hola.

A lo que te refieres es a que debería tener una tabla detalle inventario y hay almacenar lo que se ha comprado y lo que se ha vendido.
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