Access - Factura access

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 7 puestos en Access (en relación al último mes)
Gráfica de Access

Factura access

Publicado por Jose (2 intervenciones) el 14/09/2019 03:11:38
Saludos a todos


Tengo dos formularios Relacionados por el campo NoFactura los cuales son Formulario Factura con sus campos NoFactura,Fecha y Cliente, Subformulario DetalleFactura con sus campos NoFactura,CodigoP y Cantidad

El CodigoP lo agrego desde un formulario AgregarProductos que contiene una lista de todos los productos dados de alta

Lo que nesesito es que al agregar el CodigoP al DetalleFactura este me verifique si el CodigoP ya existe en el DetalleFactura y que en lugar de agregarme un nueva linea me le sume 1 al campo Cantidad segun el CodigoP seleccionado

DetalleFactura
CodigoP Cantidad
1001.............2
1002.............6

Si seleccion otra vez el codigo 1001 que no me agrege otra linea si no que me sume 1 a la cantidad....osea que ahora seria Codigo 1001 Cantidad 3

Espero me puedan ayudar
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

Factura access

Publicado por Anonimo (3319 intervenciones) el 14/09/2019 09:47:09
Modificar un conjunto de datos en tiempo de ejecución, es una tarea delicada que requiere (aparte de poseer un cierto dominio sobre la herramienta) tener muy claras las reglas a cumplir, el tema no es baladí.

Para hacer ese seguimiento se requiere verificar la integridad de los datos (evitar las repeticiones) en algún momento de la introducción y con respecto a ese momento, obrar en consecuencia - aclaro este punto -:

Se inicia un registro y (teóricamente) seleccionado un código de producto se puede verificar si ya forma parte de ese conjunto … ¿continuamos o abortamos?

Si abortamos nos tendríamos que desplazar a ese registro y ¿editar la cantidad? ….
.- editar las cantidades requiere una toma de datos (el nuevo valor)
.- efectuar un recalculo ajustando el/los Stock (interactuando con las propiedades OldValue y Value y sus eventos asociados ….
.- finalizando con la anulación del registro incompleto (ya que su creación crearía la no deseada repetición de los datos.

Si no abortamos y se consiente que el usuario introduzca completamente el nuevo registro, ya hemos solucionado el problema de la toma de datos, pero siguen en pie los restantes y en pie continua la eliminación del incipiente registro (con leves diferencias … lo mismo que el caso anterior)

En principio yo optaría por impedir -en el diseño de la tabla- que un conjunto de características se repitan, es sencillo, solo se precisa crear un INDICE (no una clave) que impida la repetición, un supuesto:

Vendemos fruta (elementos que pueden comprar todos los clientes todos los días y varias veces incluso)
Si el índice toma como referencia el numero de venta y el código, permitiría que cualquier cliente comprase una docena de plátanos por la mañana y otra por la tarde (y todas las que desease al lo largo del día/mes/año), pero cada compra seria una compra (numero de venta) diferente.

En tiempo de ejecución si el vendedor intenta introducir 'en esa venta' dos veces el mismo código el sistema lo rechazara y le impedirá continuar (o validar el registro), solo tiene que localizar en ese subconjunto (la lista de los productos de esa venta) el Ítem y corregir la cantidad (ojo a los ajustes del Stock).

Método para generar el indice:
.- Tabla en modo diseño
.- Seleccionar 'Indices'
.- Ponerle un nombre (cualquiera, es para poder guardarlo y diferenciarlo de otros posibles índices)
.- seleccionar cuantos elementos intervienen (en el ejemplo: código y n. venta)
.- indicarle que NO es principal pero si UNICO

Nota: los campos (por diseño) tienen que permitir las repeticiones necesarias, en concreto y en el ejemplo se podrá repetir
.- el código (puede haber muchas ventas de plátanos)
.- el numero de venta (en la misma venta pueden ir manzanas y/o uvas)

Pero no permitirá mas de una combinación venta_n + código_nn
.- si permite venta_5 + código_1, venta_5 + código_2,
.- también permite venta_1 + código_5, venta_3 + código_5 ….

Guardar y verificar que cumple las características (no hace falta formulario alguno para este control)

Verificar que con eso basta (a la espera de futuras ampliaciones que vendrán con el aumento de control sobre la programación)
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