CurrentDb.Execute "INSERT INTO convenati(conid, location, surname, firstname, middlename, phone, email, dob, sex, mstatus, status, violated, date)"&_
"VALUES(" & Me.txtid & ", '" & me txtlocation & "','" & Me.txtsurname & "','" & Me.txtmiddlename & "','" & Me.txtfirstname & "','" & Me.txtphone & "','" & Me.txtemail & "','" & Me. txtdate &"','" &_ Me.cbogender &"','" &_ Me.cbomstatus &"','" &_ Me.cboviolated & "','" & Me.txtdate & "')"
我需要有关此代码的帮助。
我有一个名为convenati
的表,一个名为formconvenati
的表单和一个名为convenati subform
的子表单。
在我的表格中我有这些字段:
帮助我
答案 0 :(得分:0)
您在)
。
如果表格中的任何字段是字段类型 Date/Time
,则SQL应该在日期周围#
而不是'
}
仔细检查您在查询前半部分列出的字段数,以及您要添加的数据(在查询的后半部分)。其中一个缺少。
在.
之后遗失me.
。
将Option Explicit
放在模块顶部(第一行)以帮助查找&修复未声明/错误处理的变量,对象等。
假设您没有像示例中那样将它们全部挤压在一起,但是如果这样做,请删除除行尾之外的所有_
。
CurrentDb.Execute "INSERT INTO convenati(conid, location, surname, firstname, " & _
"middlename, phone, email, dob, sex, mstatus, status, violated, date) " & _
"VALUES(" & Me.txtid & ", '" & Me.txtlocation & "','" & Me.txtsurname & _
"','" & Me.txtmiddlename & "','" & Me.txtfirstname & "','" & Me.txtphone & _
"','" & Me.txtemail & "','" & Me.txtdate & "','" & Me.cbogender & "','" & _
Me.cbomstatus & "','" & Me.cboviolated & "','" & Me.txtdate & ") "
此外,您在问题date
或data
中列出的最后一个字段是?
......所有这些事情的共同点是缺乏对细节的关注。 “关闭”不计入编码。
解决VBA中使用的SQL问题的一种方法是在实际查询中测试语句的实际SQL输出。
使用上面的语句作为示例,将CurrentDb.Execute
更改为Debug.Print
,并使下一行说Stop
。运行代码,当它在Stop
处中断时,按 Ctrl + G 打开立即窗口,然后查看完整的SQL。 / p>
如果仍然无法找到问题,请将该输出复制并粘贴到空白查询中(在SQL视图中)并尝试运行查询。它也不会在那里运行,然后你需要开始删除部件以简化查询,通过消除过程进行故障排除。
我不知道每个表单控件的值是什么,也不知道表中每个字段的数据类型是什么,因此我将它们全部替换为___
并得到:
INSERT INTO convenati (conid, location, surname, firstname, middlename,
phone, email, dob, sex, mstatus, status, violated, date) VALUES(___,
'___','___','___','___','___','___','___','___','___','___','___')