插入查询只插入第一个值



我环顾四周,想一定是其他人有这个问题,但我没有看到。

这让我抓狂,这么简单的事情不起作用,我不明白为什么,所以我花了3个小时在一些本应该花几分钟的事情上。。。

这是设置。我有一个需要添加2个字段的查询。一个复选框和一个提交日期。现在,我无法将字段添加到基础表中,因为它们会被一系列查询和手动更新删除和重新创建(继承的系统只是试图通过(。

因此,我想到了将当前查询的输出写入一个表(通过追加查询(,然后将该表用作在数据表视图中打开的表单的数据源。然后用户可以添加日期并选中复选框字段中的复选框。然后,我使用复选框的afterupdate事件将这两个字段插入到另一个表中(如果未选中,则删除它们(,并执行以下操作:

Private Sub Submitted_AfterUpdate()
Dim strSQL, strSQL2 As String
strSQL = "INSERT into tbl_SaveSubInfo (SO, Submitted, SubmissionDate) SELECT ord_no, Submitted, SubmissionDate FROM tbl_ReadyToPay WHERE ord_no ='" & Me.ord_no & "'"
strSQL2 = "DELETE * from tbl_savesubinfo where SO ='" & Me.ord_no & "'"
DoCmd.Save
If Submitted = -1 Then
DoCmd.RunSQL (strSQL)
Else
DoCmd.RunSQL (strSQL2)
End If
End Sub

(我添加了docmd.save,试图解决这个问题,但没有成功(。然后,我将此查询添加到基于原始查询创建表的追加查询中,我需要将字段添加到该查询中,并将Submit(复选框(字段和SubmissionDate字段添加到追加中,以配置它在重写表时将其写回。

它主要起作用。。。除了insert查询大多只将ord_no写入SO字段,其他2个字段(提交、提交日期(都没有插入,尽管我浏览了大量的网站和教程,看看我的语法是否错误,也找不到任何东西,但我不明白为什么。现在是奇怪的部分。有时它会插入所有3个字段,但我还没能弄清楚是什么触发了它。我想也许是因为我在记录中,所以数据直到我离开才保存(因此是docmd.save(,但这并没有解决问题。

当插入查询确实插入了所有3个字段时,它的其余部分就像一个魅力。。。但我不能每次都这么做。。。

我非常感谢你的想法!

选项DoCmd.Save保存您所在的对象,即表单。要强制保存数据,您有两个选项:

DoCmd.RunCommand acCmdSaveRecord

If Me.Dirty = True Then
Me.Dirty = False
End If`

最新更新