Access - OPERAR DENTRO DE UNA MISMA TABLA ACCESS

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

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Rodanim (16 intervenciones) el 12/04/2020 21:17:50
HOLA AMIGOS, NUEVAMENTE ACUDO A USTEDES..
QUISIERA SABER SI ALGUIEN ME PUEDE AYUDAR..
LES CUENTO, TENGO UNA TABLA EN UNA BASE DE DATOS CON 6 CAMPOS PRINCIPALES...
1-PRODUCTO
2-FECHA
3-COSTO
4-CANTIDAD
5-TOTAL
6-DISPONIBILIDAD

NECESITO SABER SI ES POSIBLE HACER UNA FUNCIÓN O UNA CONSULTA QUE ME MULTIPLIQUE EL
COSTO POR CANTIDAD Y QUE EL RESULTADO ME LO ESCRIBA EN EL CAMPO TOTAL, REGISTRO POR REGISTRO; Y SEGÚN EL MONTO DEL TOTAL SI ES MAYOR O IGUAL QUE 100, QUE EN EL CAMPO DISPONIBILIDAD ME ESCRIBA "SI", Y SI ES MENOR QUE 100, QUE ME ESCRIBA "NO".

NECESITO QUE LA FUNCIÓN O CONSULTA ME AGREGUEN LOS DATOS A CADA REGISTRO DE LA TABLA SEGÚN LOS RESULTADOS.

LO HE HECHO EJECUTANDO LOS REGISTROS MEDIANTE UN FORMULARIO DESDE EL EVENTO CARGAR, MEDIANTE UNA FUNCIÓN QUE SE AUTO EJECUTA HASTA FINALIZAR TODOS LOS REGISTROS, PERO RESULTA QUE QUE OCUPA MUCHA MEMORIA Y APARTE DE ESO QUE SI LA TABLA CONTIENE MAS DE 600 REGISTROS, ACCESS MUESTRA EL ERROR DE "PILA INSUFICIENTE"... POR ESA RAZÓN QUISIERA SABER SI ES POSIBLE HACERLO MEDIANTE UNA CONSULTA DE ACTUALIZACIÓN U OTRA FUNCIÓN.

DE ANTEMANO LES AGRADEZCO MUCHO....
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
Val: 4
Ha aumentado su posición en 10 puestos en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Andres (2 intervenciones) el 12/04/2020 21:30:00
Hola prueba asi:

1
2
3
4
5
UPDATE tabla SET
	total=costo*cantidad,
	disponobilidad = CASE WHEN costo*cantidad < 100 THEN 'NO'
						  ELSE 'SI'
					 END

Esto es en SQL, no manejo ACCESS pero imagino que es igual.
PD: Esto realizara el cambio a todos los registros de la tabla, si quieres puedes añadir un WHERE para filtrar según alguna condición.

Saludo,

Andres Ruiz
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: 28
Ha aumentado su posición en 4 puestos en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Rodanim (16 intervenciones) el 12/04/2020 22:39:29
QUE TAL ANDRES RUIZ, YA PROBÉ PERO ME MUESTRA UN ERROR DE SINTAXIS..
TE ADJUNTO LA CAPTURA Y LA BASE DE DATOS...
GRACIAS POR TU AYUDA
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

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Anonimo (3316 intervenciones) el 13/04/2020 00:06:44
Esto funciona:

1
CurrentDb.Execute "Update TbProducto set Total = Costo * Cantidad, disponibilidad = IIF((Costo * Cantidad) < 100, 'No', 'Sí')"

Pero no es una forma optima de trabajar.
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: 28
Ha aumentado su posición en 4 puestos en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Rodanim (16 intervenciones) el 13/04/2020 00:16:06
Perdon, no entiendo donde tengo que colocar este codigo..
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

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Anonimo (3316 intervenciones) el 13/04/2020 02:52:48
La forma mas sencilla de utilizarlo:

.- Se inicia una consulta nueva:
.. Crear ==> Diseño de consulta
NO se elige ninguna tabla
(aparecerá como opción en la barra en lugar de 'vista diseño' en grande ==> SQL)

.- Click en SQL (es el botón antes mencionado), se abre una ventana que contendrá ==>

1
SELECT;

COPIAR el contenido de la línea que se envió antes algo así:

1
Update TbProducto set Total = Costo * Cantidad, disponibilidad = IIF((Costo * Cantidad) < 100, 'No', 'Sí')

Se pega en la ventana y se le añade (al final) un punto y coma:

1
Update TbProducto set Total = Costo * Cantidad, disponibilidad = IIF((Costo * Cantidad) < 100, 'No', 'Sí');

Se cierra esa ventana (pedirá un nombre, mejor uno sin espacios) y se guarda

Aparecerá una consulta de actualización con el nombre que se le hubiese puesto que si se ejecuta (y cada vez que se ejecute) actualizara el contenido de la tabla


Normalmente no se 'trastea' con la tabla, cada vez que se quiera ver el total y si hay disponibilidad, se ejecuta una consulta (muy similar a esta) que presenta el resultado sin modificar nada.

El mismo método de antes (crear una consulta vacía):

El contexto será este ahora:
1
SELECT TbProducto.IdProducto, TbProducto.Producto, TbProducto.Fecha, TbProducto.Costo, TbProducto.Cantidad, [Costo]*[Cantidad] AS El_Total, IIf(([Costo]*[Cantidad])<100,'No','Sí') AS Disponible FROM TbProducto;

Se guarda (con nombre diferente al anterior) y cuando se ejecute (y sin preguntar nada, es una consulta sin opción a modificar datos) presentara el resultado que se desea.

Si se abre en modo diseño, se apreciara (comparando con su 'vista SQL') como interpreta y genera Access las consultas.
También se apreciara que 'modifica' el texto que se le pego, es normal Access añade (para poder utilizar varias tablas sin problemas con los nombres repetidos) el nombre de la tabla de cada campo, esto es 'les pone el apellido'

Con una sola (o varias que no repitan nombres de campos) no es necesario, pero Access por defecto 'las apellida a todas'.


Nota:
Como es una consulta de actualización, pedirá permiso para ejecutarse (se puede evitar, pero … mejor que avise, ya subiremos a una rama mas alta cuando sea el momento adecuado).
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 miguel
Val: 501
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por miguel (306 intervenciones) el 13/04/2020 00:15:27
como yo no soy muy bueno en codigo doy opciones mas basicas:
crea un boton que ejecute las siguientes consultas de actualizacion:

1
UPDATE TbProducto SET TbProducto.Total = [Costo]*[Cantidad];
realiza el calculo del total

1
2
UPDATE TbProducto SET TbProducto.Disponibilidad = "SI"
WHERE (((TbProducto.Total)>=100));
pone valor SI a los registros correspondientes

1
2
UPDATE TbProducto SET TbProducto.Disponibilidad = "NO"
WHERE (((TbProducto.Total)<100));
pone valor NO a los registros <100
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 miguel
Val: 501
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por miguel (306 intervenciones) el 13/04/2020 02:18:10
antes te he puesto una respuesta para que utilices unas consultas pero ahora te adjunto una BD de ejemplo en la que he creado un formulario con dos botones, los dos hacen lo mismo, calculan el total de todos los registros y actualiza a SI o NO el campo DISPONIBILIDAD en funcion del valor de Total.
en un boton se ejecuta mediante codigo y en otro se ejecuta mediante consultas.
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: 28
Ha aumentado su posición en 4 puestos en Access (en relación al último mes)
Gráfica de Access

OPERAR DENTRO DE UNA MISMA TABLA ACCESS

Publicado por Rodanim (16 intervenciones) el 13/04/2020 04:45:35
Muchísimas gracias amigo Miguel, caso resuelto...
Saludos desde Guatemala
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