首页 > 解决方案 > 在 VBA 中使用 INSERT INTO sql 语句将记录翻倍

问题描述

我正在尝试实现一个简单的注册结构,而且我真的是VBAAccess. 在指令INSERT TO中,它应该向表 USER 添加一条记录。但它添加了 2 个相同的记录,这些记录只有一个不同的用户 ID,由自动编号生成。然后我想将最后生成的 UserID 复制到全局变量 valID 中,这样我就可以将这个 UserID 插入到另一个表中。我究竟做错了什么?

DoCmd.RunSQL ("INSERT INTO User ([Type], [FiscalCode], [Name], [Surname], [Birthdate], [Gender], [phoneNumber], [email], [country], [city], [postalCode], [street], [houseNumber])VALUES ('" & valtype & "', '" & valfis & "', '" & valname & "', '" & valsur & "', '" & valdata & "', '" & valgen & "', '" & valphone & "', '" & valemail & "','" & valcountry & "', '" & valcity & "', '" & valcode & "', '" & valstreet & "', " & valnum & ")")

valID = DLookup("[UserID]", "User", "[FiscalCode] = '" & valfis & "'")

在这段代码之后,我想在另一个表中执行另一条插入类型的指令,以将我刚刚获得的 UserId 作为主键插入到这个新表中。这是代码中唯一的其他 INSERT INTO。

标签: sqlms-access

解决方案


为此,很可能表单绑定到表,控件绑定到字段,因此用户将数据输入控件,然后代码也运行 INSERT,从而创建两条相同数据的记录。

当以下情况之一发生时,一条记录被提交到表中:

1) 表或查询或绑定表单已关闭

2) 移动到另一条记录

3)运行代码保存

删除代码。

使用表单/子表单排列在“另一个”表中输入父记录以及从属记录。


推荐阅读