MS Access - 如何在不同的表中增加数字?

3

我对MS Access非常陌生,我的问题是如果我有两个表,Table1有10个条目,并且该表具有一个“是”和“否”的下拉列表以及一个名称字段(多个相同名称的条目)。现在,在Table2中有一个名称字段(没有多个条目)和总字段。因此,每当用户从Table1的下拉菜单中选择“是”时,则Table2中的总字段应增加1。那么,是否可以这样做,或者是否有其他简单的方法来解决这个问题?提前致谢。


你可以在组合框的After_Update事件中完成这个操作。但是,如果他们在框中误点击了一个选项,会发生什么呢? - random_answer_guy
1
@random_answer_guy,你认为选择“是”会如何增加Table2中的“Total”字段? - Nick King
1个回答

3
您不能在MS Access表格中直接进行这样的操作。在MS Excel中,您可以创建一个公式来计算表格中TRUE-FALSE标志的数量,并使用COUNTIFS给出该数量,但在Access表格字段中没有直接执行此操作(编写公式)的选项。Access并不是这样工作的。
您需要一个SQL查询来实现您想要的功能。但是,MS Access不允许在UPDATE查询中使用聚合函数,这意味着您不能在UPDATE中使用GROUP BY。
您可以编写一个宏,调用3个不同的SQL查询以类似的解决方法来实现您想要的操作
我们有以下示例:
我将使用以下表: Table1(ID,名称为文本,检查为布尔值) Table2(ID,Name_Total为文本,Total为整数)
我已经创建并保存了以下查询:
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];

查询2

UPDATE Table2 
INNER JOIN Temp_Table ON Table2.Name_Total = Temp_Table.Name 
SET Total = Count_Total;

查询3

DROP TABLE Temp_Table;

第一个查询创建一个临时表,统计Table1中每个名称在表中出现的次数。 第二个查询使用在Temp_Table中找到的值来更新Table2上的总值。 第三个查询只是删除Temp_Table。
每次想要更新Table2时,必须按照此顺序运行这些查询。
现在你只需要将这些查询(按正确顺序)放入一个宏中,并手动运行该宏或在数据库打开时运行它,或者在表单上按下一个按钮时运行它。
这不完全是您想要的,但我希望它能帮助解决您的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接