Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 更新时的表单字段事件,插入到另一个表中_Ms Access_Vba_Ms Access 2007 - Fatal编程技术网

Ms access 更新时的表单字段事件,插入到另一个表中

Ms access 更新时的表单字段事件,插入到另一个表中,ms-access,vba,ms-access-2007,Ms Access,Vba,Ms Access 2007,当在数据库的表单字段中输入“是”时,我希望触发在另一个表中“在后台”插入新行数据,并继续在表单中移动。有什么想法吗?不确定“If”语句语法…获取“DoCmd.RunSQL strSQL”上的调试错误 按指示去做。无法发布图像…没有要点。初始“运行时错误为3346”,查询值和目标字段的数量不相同 调试打印输出说明: INSERT INTO Data_Destruction ([DonateID], [Make-Model], [Model_Serial_Number], [Media_Type],

当在数据库的表单字段中输入“是”时,我希望触发在另一个表中“在后台”插入新行数据,并继续在表单中移动。有什么想法吗?不确定“If”语句语法…获取“DoCmd.RunSQL strSQL”上的调试错误

按指示去做。无法发布图像…没有要点。初始“运行时错误为3346”,查询值和目标字段的数量不相同

调试打印输出说明:

INSERT INTO Data_Destruction ([DonateID], [Make-Model], [Model_Serial_Number], [Media_Type], [Media_Serial_Number], [Date of Destruction]) VALUES ('24', 'Unknown', 'Make - Model', 'Model_Serial_Number', 'Media_Type', 'Media_Serial_Number', '0.0005')
显然,我的“日期”值语法不正确

好的…用#…#固定了日期,并添加到MediaID(自动编号字段)——表中我要插入的所有字段现在都包括在内。运行代码并获得:

INSERT INTO Data_Destruction ([MediaID],[DonateID], [Make-Model], [Model_Serial_Number], [Media_Type], [Media_Serial_Number], [Date_of_Destruction]) VALUES ('', '28', 'Unknown', 'Make - Model', 'Model_Serial_Number', 'Media_Type', 'Media_Serial_Number', '1/1/2000')

最新版本的
INSERT
语句包含8个
,但只有7个字段。我对语句进行了格式化,以便于对它们进行计数:

插入数据\u销毁
(
[媒体ID],
[DonateID],
[制作模型],
[型号序列号],
[媒体类型],
[媒体序列号],
[销毁日期]
)
价值观
(
'',
'28',
“未知”,
"制造模型",,
“型号序列号”,
“媒体类型”,
“媒体序列号”,
'1/1/2000'
)
您需要删除其中一个
或包含第八个字段以接受额外值

我建议您将
INSERT
语句粘贴到Access查询设计器中新查询的SQL视图中。根据需要调整该语句,直到错误消失,它会向表中添加一行您想要的值。在该语句工作后,请修改VBA代码以生成相同的语句文本

之后,我建议您放弃
DoCmd.SetWarnings False
并执行如下语句

CurrentDb.Execute strSQL,dbFailOnError
不过,我不确定你是否还需要什么。主要是我很困惑,因为我不明白你为什么要买这些

Response=acDataErrAdded
Response=acDataErrContinue

您希望响应完成什么?

在以
strSQL=
开头的一行后的下一行添加
Debug.Print strSQL
。删除或禁用
DoCmd.SetWarnings False
。运行代码。转到即时窗口(Ctrl+g将带您到那里)然后复制插入语句文本。将该语句粘贴到问题中。还包括错误消息的全文。
INSERT INTO Data_Destruction ([MediaID],[DonateID], [Make-Model], [Model_Serial_Number], [Media_Type], [Media_Serial_Number], [Date_of_Destruction]) VALUES ('', '28', 'Unknown', 'Make - Model', 'Model_Serial_Number', 'Media_Type', 'Media_Serial_Number', '1/1/2000')