valores update una tabla registro modificar into insertar ejemplos ejemplo datos consultas como comando sql vba ms-access access-vba

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.