Access - Error al cambiar de linea

 
Vista:
Imágen de perfil de Rachid
Val: 64
Ha aumentado su posición en 13 puestos en Access (en relación al último mes)
Gráfica de Access

Error al cambiar de linea

Publicado por Rachid (23 intervenciones) el 06/01/2020 10:04:58
foto-error

Buenos días compañeros,

Tengo un formulario de factura que a su vez contiene un subformulario de lineas de factura (los productos de cada factura) y ahora al introducir una linea en la factura y poner la cantidad, al saltar a la seguiente linea me sale el error que aparece en la imagen, si lo cierro puedo seguir metiendo mas lineas. también me he dado cuenta que si dejo la cantidad en 0 no me sale el error.
Alguien me podría decir que estoy haciendo mal por favor?
Adjunto una foto y la bafoto-errorse de datos.

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

Error al cambiar de linea

Publicado por Anonimo (1681 intervenciones) el 06/01/2020 17:53:09
No se puede utilizar el evento de un objeto de la forma que se intenta, en esa ubicación (el evento) se le ha de poner una macro o el nombre de una función/subfunción que si harían la acción de modificar (en este caso) el valor de/en una tabla.

'me' es una palabra reservada que se utiliza en la ventana de VBA y que hace referencia al formulario en que se esta utilizando, utilizarla fuera de ese entorno no será reconocida ni tenida en cuenta.

De todas formas esa 'formula' no funcionara, porque en ese subformulario no existe un referente a STOCK, en toda la base de datos, el único STOCK que parece adecuado, es el campo de ese mismo nombre de la tabla artículos y -conceptualmente- no se le puede restar nada a a un dato que no existe (por lo menos debería ser CERO que ampara la ambigüedad pero tiene significado matemático) pues un NULL no es un concepto matemático valido.

Solución.... en principio los NULL deberían de desaparecer (dejarlos supondrá un montón de problemas si no se les trata de forma correcta) y evitaran utilizar funciones como NZ (que solo sirven para tapar las vergüenzas de una programación difusa).

En principio en el evento 'después de actualizar' del campo cantidad del formulario, en el desplegable: seleccionar la opción [Procedimiento de evento] y click en los puntitos ………...

Con los 'NULL' solucionados:
1
2
3
Private Sub Cantidad_AfterUpdate()
CurrentDb.Execute "Update Articulos SET Stock = Stock  - " & Me.Cantidad & " Where ID = " & Me.Articulo
End Sub

Sin solucionar los 'NULL' (la solución es tan elemental como poner un valor en ese campo que por cierto pone cero por defecto ¿ quien se lo elimino ?)
1
2
3
Private Sub Cantidad_AfterUpdate()
CurrentDb.Execute "Update Articulos SET Stock = Nz(Stock, 0) - " & Me.Cantidad & " Where ID = " & Me.Articulo
End Sub


Nota, ojo con las confusiones al escribir, Access se toma muy en serio las ordenes, el almacen no suele hacerlo de la misma forma ….
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
Imágen de perfil de Rachid
Val: 64
Ha aumentado su posición en 13 puestos en Access (en relación al último mes)
Gráfica de Access

Error al cambiar de linea

Publicado por Rachid (23 intervenciones) el 14/01/2020 08:34:44
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
sin imagen de perfil
Val: 495
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Error al cambiar de linea

Publicado por miguel (237 intervenciones) el 14/01/2020 20:54:31
he estado viendo el formulario y en principio principio hay dos incidencias:
1. la expresion me.stock = me.stock + cantidad tienes que ponerla en el evento despues de insertar del subformulario lineas de factura
2. en el subformulario tiene que aparecer tambien el campo stock por eso te da el mensaje de que no encuentra el objeto me, no es suficiente con la relacion.
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