插入查询只插入第一个值?

Insert Query only inserting the first value?

我环顾四周,认为其他人一定遇到过这个问题,但我没有看到。

这让我抓狂,这么简单的东西不起作用,我也不知道为什么,所以我现在花了 3 个小时来处理本该花几分钟的事情...

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

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

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 以尝试解决此问题,但没有成功)。然后我将此查询添加到基于原始查询创建 table 的追加查询中,我需要将字段添加到并将提交(复选框)字段和提交日期字段添加到追加中,计算它将写回在重写 table.

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

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

非常感谢您的想法!

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

DoCmd.RunCommand acCmdSaveRecord

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