Access - Mostrar determinado precio de un producto en formulario automáticamente

 
Vista:
Imágen de perfil de Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 27/07/2020 21:11:47
Tengo una tabla1 en la que tengo registrado los productos que estoy vendiendo, pero con dos columnas de precios (por menudeo y por mayoreo) y tengo otra tabla2 en la que registro las ventas que voy haciendo. Pero me gustaría saber si se puede poner para que en el formulario de la tabla2 se muestre el precio por pieza automáticamente dependiendo de la cantidad de productos que compró, y hacer el precio total con ese precio por pieza.

Por ejemplo,
si compra 2 cables, precio por pieza $10, precio total $20...
Y si compra 5 cables, precio por pieza $7, precio total $35.

Pero que esos precios se pongan automáticamente sacados de la tabla1 de las columnas Por menudeo y por mayoreo
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
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por jorge (304 intervenciones) el 27/07/2020 22:46:39
puede poner una imagen para darnos una ide..

saludos
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
Imágen de perfil de Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 27/07/2020 23:46:31
Captura

Este es el formulario de los productos (primer imagen) , en la tabla se ve que tengo una columna con un precio para menudeo y otro precio para mayoreo. A partir de 3 piezas, los precios serian de mayorista.

Captura2

Esta otra imagen muestra el formulario para las ventas que haga.

Entonces, me gustaría que al poner el 3 en "Cantidad", abajo aparezca automáticamente el precio de Mayoreo, y que abajo en total de la multiplicación, pero en el caso de que ponga 1 o 2, aparezca el precio de Menudeo


Espero que me haya dado a entender

en pseudo codigo, quedaria mas o menos asi la idea:

1
2
3
4
5
6
7
if  "Cantidad" < 3; entonces
Precio = Precio menudeo
else
Precio = Precio mayoreo
end if
 
Precio total = Precio * Cantidad
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

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Anonimo (3316 intervenciones) el 28/07/2020 00:43:02
Propongo lo siguiente:

Nos basaremos que se compara la cantidad, que puede ser una variable en función del producto (y un campo mas en la tabla) o una cifra fija

Falso = 0, verdadero = -1 (por defecto para Access) y ABS (la comparación) = 0/1

variable: Referente (puede ser un dato en la tabla o una cifra concreta)
1
2
3
Precio = Menudeo * Abs(Cantidad < referente) + Mayoreo * ABS (cantidad >= referente)
 
PrecioTotal = Cantidad * ( Menudeo * Abs(Cantidad < referente) + Mayoreo * ABS(cantidad >= referente))

En la ventana de inmediato:
Mayoreo = 100
menudeo = 120
referente = 3

cantidad =2
? Menudeo * Abs(Cantidad < referente) + Mayoreo * ABS(cantidad >= referente)
120
?Cantidad * ( Menudeo * Abs(Cantidad < referente) + Mayoreo * ABS(cantidad >= referente))
240

cantidad =3
? Menudeo * Abs(Cantidad < referente) + Mayoreo * AbS(cantidad >= referente)
100
?Cantidad * ( Menudeo * Abs(Cantidad < referente) + Mayoreo * ABS(cantidad >= referente))
300
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 Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 28/07/2020 01:40:26
Es que aquí el problema es que es tanto los valores de Mayoreo y Menudeo están en una tabla diferente.

Tons, no se como o donde ponerlo :o
perdón, soy nuevo en Access
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

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Anonimo (3316 intervenciones) el 28/07/2020 09:06:29
En alguna parte (accesible) estarán para utilizarlos, sea con un calculo que diferencie en función de una condición o simplemente para 'copiarlo' y que no afecte al valor en la tabla (valor que puede cambiar a lo largo del tiempo o con cada compra).

Esto es:
..- Para hacer el calculo o simplemente para tomarlo como referente ha de estará 'accesible' y si actualmente no lo esta .... es el momento de implementar esa parte que es fundamental para que la aplicación funcione bien hoy y también mañana.

¿Dónde se ubicaría? .....

.- Como valor calculado por defecto para ese objeto
.- Asignación directa, algo que en por la exposición anterior (el pseudo código) daba la impresión de que se dominaba.

¿Qué los valores están 'en otro sitio' ... suele ser lo habitual, en la tabla que contiene las existencias (normalmente el almacén) estará la descripción, código, precios de coste y venta y si fuera el caso: los diferentes precios en función del destino sea en porcentaje o por estimación directa, en otra tabla subyacente -normalmente el origen de datos del formulario- esta el entorno real de trabajo, la conexión entre ellas = programación.

Lamentablemente una imagen solo le sirve al autor (que se supone sabe 'lo que esta detrás') , a mi como constructor de aplicaciones, programador o como se quiera definir no me enseñes lo bonito que esta el animal al salir del salón de belleza, enséñame los útiles que tienes para poder analizar y conocido el entorno: ayudar a optimizar la aplicación.
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 Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 28/07/2020 19:06:23
Sí tienes razón, fue mi error, el pseudo código lo había puesto solo para interpretar la idea de lo que se quería lograr :'v


Captura Este es la tabla de registro donde iré agregando los productos que voy vendiendo


Captura2 Esta es la tabla donde se irían registrando las ventas, el único que tengo como valor calculado es el precio total


Captura3 Y la relación que he puesto entre los dos es el producto

Solo hice las tablas y cree sus respectivos formularios sin entrar al código o algo por el estilo.
(el modulo que hay solo es para el cuadrito de busqueda)

Lo que no se, es como hacer para que estén accesibles los precios de la tabla de Catalogo en la tabla de Ventas
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

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Anonimo (3316 intervenciones) el 28/07/2020 21:43:14
Una forma de acceder a los datos de las tablas es mediante funciones de dominio, en particular DLOOKUP que -con los parámetros correctos- devuelve un dato especifico de un conjunto (el conjunto puede ser una consulta o una tabla en definitiva a ese conjunto se le llama... 'un dominio' .

No es el único método, utilizado con precaución no supone un problema (de eficiencia) pero si se abusa de el puede llegar a ralentizar cualquier trabajo.

Esa función (todas las funciones de dominio comparten la metodología) tiene tres secciones
.- La primera ==> el nombre del campo que contiene el valor que nos interesa
.- La segunda ==> donde esta ese dato (el dominio)
.- La tercera (que es opcional) ==> las condiciones que ha de cumplir ese dato

DLookup tiene un inconveniente a tener en cuenta: si no lo localiza (porque no existe en ese conjunto) devuelve un NULL y ese tipo de dato es mortal para cualquier operación posterior en la que se requiera un valor consistente.

A lo concreto: un ejemplo en base a lo expuesto:
Una vez que se conoce el ID del registro del catalogo (u otro dato que permita seleccionarlo como único) y deseando obtener la descripción se utilizaría así:

1
= Dlookup ("descripcion", "catalogo", "ID_Producto = " & [aqui el campo del formulario en que se ingresa el ID] )

Si se desea obtener el precio1 ... lo mismo, solo se cambia el primer parámetro:
1
= Dlookup ("precio1", "catalogo", "ID_Producto = " & [aqui el campo del formulario en que se ingresa el ID] )

Y en este punto he de hacer una pausa, porque desconozco todo sobre tu aplicación, ni tan siquiera que/cual es la configuración regional en que trabaja tu sistema operativo (es un dato significativo), implica al separador decimal (coma o punto) y al separador de listas (coma o punto y coma) y eso a la hora de escribir una sentencia es primordial para que Access entienda lo que se le solicita (se cumple lo de 'que buen vasallo si tuviera un buen Señor').

¿Te planteaste el ver 'como lo hace' el ejemplo que suele venir con Access ? (o que está entre las plantillas gratuitas) ==> Northwind
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 Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 29/07/2020 03:17:01
Ya vi el ejemplo, pero no encontré lo que necesitaba :/

Mira, ya logre hacer que muestre el precio que deseo con lo que me comentaste...
______________________________________________________

1
= (Dlookup ("precio1", "catalogo", "ID_Producto = " & [id_producto] )) * Abs([Cantidad] < 3) + (Dlookup ("precio2", "catalogo", "ID_Producto = " & [id_producto] )) * ABS ([Cantidad] >= 3)
_______________________________________________________
Pegandolo aquí:
Captura

Esa parte funcionó perfecto.
Pero ahora el resultado no me lo guarda en la variable de PrecioI, o sea, no me aparece en los registros, solo me lo muestra en el formulario :c
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

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Anonimo (3316 intervenciones) el 29/07/2020 21:48:09
Si, es un fallo que no es un fallo pues al indicar que el origen de datos 'es un campo calculado' ya no se le puede indicar que 'ese mismo origen es un campo de una tabla'.

Las alternativas son varias, entre ellas esta la de utilizar una macro con la sentencia 'establecer valor' y asignar ese resultado calculado a la tabla que corresponda (pero no es lo mas eficaz).

Otra alternativa (mas utilizada) consiste en hacer una asignación directa.... pero requiere dos cosas (es 'lo bonito' de la programación, saber dirigir a la maquina 'desde adentro'):

.- Conocer los eventos para buscar el adecuado .. normalmente uno en el que los operadores están disponibles, en este caso serian imprescindibles DOS, el ID y la cantidad ....
.- normalmente la secuencia suele localizar primero el objeto del almacén y tras ello se indicaría la cantidad (el evento mas adecuado: al conocer la cantidad, su evento 'después de actualizar')

Es ese momento los DLookup devuelven datos validos, se opera con ellos y se asignan resultados, lo mismo que antes pero en lugar de ...
= a+b ---> precio = a+b (esto es, se le indica donde ha de depositar el dato calculado)

Suponiendo que se esta en la ventana de VBA (programación), que los campos se llaman como las etiquetas de la imagen que aportas, seria algo similar a:
1
2
3
4
5
Private Sub Cantidad_AfterUpdate()
Me.Precio = Dlookup ("precio1", "catalogo", "ID_Producto = " & Me.id_producto )) * Abs(Me.Cantidad]< 3) + (Dlookup ("precio2", "catalogo", "ID_Producto = " & Me.id_producto )) * ABS (Me.Cantidad >= 3))
'(en este punto, el valor en el campo precio ya es el correcto asi que ...)
Me.PrecioTotal = Me.cantidad * Me.Precio
 End Sub

Nota. esta escrito sobre la marcha y he reutilizado la sentencia que te funciona añadiendo una sintaxis mas adecuada para referirse a los cuadros de texto que se utilizan
Lo de 'Me.' le indica a Access que los objetos pertenecen al formulario actual (que no pierda el tiempo buscándolos 'por cualquier sitio')
¿corchetes o no corchetes? ... solo son indispensables si los nombres contienen espacios, en cualquier otra circunstancia solo es un poco de paja (Access los pone por defecto, porque no tiene idea de si hay espacios o no y ante la duda ....)
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 Gean
Val: 28
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar determinado precio de un producto en formulario automáticamente

Publicado por Gean (12 intervenciones) el 30/07/2020 00:36:21
¡Me funcionó perfecto! Muchas gracias bro, te debo una <3
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