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

问题描述

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

这让我发疯了,这么简单的东西不起作用,我不知道为什么,所以我现在花了 3 个小时做一些本来应该花几分钟的时间......

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

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

Private Sub Submitted_AfterUpdate()

Dim strsql,strsql2 As String

strsql = "INSERT into tbl_SaveSubInfo (SO,Submitted,SubmissionDate) SELECT ord_no,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 以尝试解决此问题,但没有奏效)。然后我将此查询添加到基于原始查询创建表的追加查询中,我需要向其中添加字段并将提交(复选框)字段和提交日期字段添加到追加中,认为它会在重写时将其写回表。

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

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

我非常感谢一些想法!

解决方法

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

DoCmd.RunCommand acCmdSaveRecord

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