sql - update - MS Access-¿Cómo aumentar el número en una tabla diferente?
modificar registro sql server (1)
Soy muy nuevo en MS Access y mi pregunta es si tengo dos tablas y Table1 tiene 10 entradas y esa tabla tiene una lista desplegable de sí y no y un campo de nombre (múltiples entradas con el mismo nombre). Ahora en la Tabla 2 hay un campo Nombre (sin entradas múltiples) y un campo total. Entonces, cada vez que el usuario seleccione "sí" de ese menú desplegable de la Tabla1, entonces el campo total en mi Tabla2 debería aumentar en 1. ¿Entonces es posible hacerlo de esta manera o hay alguna otra manera simple de abordar este problema? Gracias por adelantado.
No puede hacer eso directamente dentro de la tabla en MS Access. En MS Excel puede crear una fórmula que cuente los indicadores VERDADERO-FALSO en una tabla y le dé ese conteo usando CONTAR.SI pero no hay opción de hacerlo directamente en un campo de tabla en Access (escribir una fórmula). El acceso no funciona así.
Necesita una consulta SQL para hacer lo que desea. Sin embargo, MS Access no permite las funciones de agregación en las consultas de ACTUALIZACIÓN, lo que significa que no puede usar GROUP BY con UPDATE.
Lo que podría hacer es escribir una macro que llame a 3 consultas SQL diferentes para hacer lo que quiera de una manera similar.
Tenemos el siguiente ejemplo:
Utilizaré las tablas: Tabla1 (ID, Nombre como texto, Verificar como booleano) Tabla2 (ID, Nombre_Total como texto, Total como entero)
He creado y guardado las siguientes consultas:
Query1
SELECT * INTO Temp_Table
FROM
(SELECT Name, Count(Name) AS Count_Total
FROM Table1, Table2
WHERE Name = Name_Total AND Check = True GROUP BY Name) AS [Counter];
Query2
UPDATE Table2
INNER JOIN Temp_Table ON Table2.Name_Total = Temp_Table.Name
SET Total = Count_Total;
Query3
DROP TABLE Temp_Table;
La primera consulta crea una tabla temporal que cuenta en la Tabla1 para cada nombre cuántas veces aparece en la tabla. La segunda consulta actualiza los valores totales en la Tabla 2 con los valores encontrados y los pone en la tabla Temp. La tercera consulta simplemente elimina la tabla Temp_
Cada vez que desee actualizar su tabla2, debe ejecutar esas consultas en ese orden.
Ahora solo tiene que poner esas consultas (en el orden correcto) en una macro y ejecutar ese macro manual o en la Base de datos abierta o lo que quiera que se ejecute (cuando presiona un botón en un Formulario)
No es exactamente lo que quería, pero espero que lo ayude a solucionar su problema.