所以我的第一个表单是填充列表的表单,当用户双击该列表中的选项时,它会打开一个新表单,以便与此表单关联的表的ID我需要添加这些文本框(相对于一个记录的所有组合框和文本框此时都绑定到活动表单,但是所有未绑定。在按钮单击时,已经有vb将信息保存到桌子)。然而,我并没有创造它,它是由不再存在的人建造的,显然在这方面比我好。我的问题是,有太多的vb检查记录,以及各种基于case的sql语句,我无法将其解读为最简单的形式。
所以我在vb中寻找一个更新sql语句的简单例子,所以我可以尝试将它分开。
我需要它根据ID更新记录:sql WHERE RecordID = me.RecordID
我实际上认为我知道如何根据示例执行此操作,但每次尝试时,然后尝试按下按钮运行,我得到SYNTAX错误的运行时错误,并且调试只是突出显示db.execute (sql)部分。所以我试着得到sql语句的结果立即窗口,它对我来说很好看:
UPDATE tblMain
SET [Name] = "John Doe",
[DATE] = #9/30/2009#,
[TYPE] = "TypeA",
WHERE RecordID = 958;
我是否可以在不考虑表格中的每个字段的情况下更新表格(因为这个字段大约有15个加上新的3个,所以我在这里忽略了大约14个字段,但我不想改变它们呢?< / p>
一如既往,我很感激帮助你!谢谢!
编辑:
对不起,我总是忘记这一点....我正在尝试DAO ....
Dim db as DAO.Database
Dim sql as String
set db = CurrentDb
等
答案 0 :(得分:4)
你很亲密!在最后一列之后,您有一个简单的额外逗号。摆脱它,它工作正常。
UPDATE tblMain SET
[Name] = "John Doe",
[DATE] = #9/30/2009#,
[TYPE] = "TypeA"
WHERE RecordID = 958;
是的,您绝对只能更新几列而不是全部列。这是最好的做法,BTW。
最后,在“姓名”和“日期”之类的保留字之后命名列是不好的做法,但我知道你继承了这个。
答案 1 :(得分:2)
您最好在代码中包含 Debug.Print sql 。 bpayne已经在你的SQL语句中指出了额外的逗号。
我想指出另一种可能对调试SQL语句问题有用的故障排除技术。
从立即窗口复制语句,并将其粘贴到新查询的SQL视图中。在查询设计器中修改查询,直到可以使其工作,然后修改VBA代码以生成匹配的SQL语句。
在这种情况下,您可能没有注意到额外的逗号。但是,您可以创建另一个新查询,并在查询设计器中从头开始构建UPDATE语句。在使用它之后,您可以将其SQL视图与失败的查询进行比较。