我有3列的表格。它具有自动编号主ID(cboID),文本列(txtLocation)和数字列(txtCount)。
从这张表中,我制作了一个具有组合框和两个文本字段的表单。单击组合框时,它会显示所有cboID的列表。选择其中一个选项后,它会自动填充另外两个文本字段及其相应的位置和计数信息。我还有一个更新声明/保存按钮,允许用户编辑其中一个条目,按保存,并更新一个或两个字段。
这是我的陈述。
Private Sub cmdUpdate_Click()
Dim strSQL As String
strSQL = "UPDATE aDuh SET Location = '" & Me.txtLocation & "', Count = '" & Me.txtCount & "' WHERE ID = '" & Me.cboID & "'"
DoCmd.RunSQL (strSQL)
End Sub
更新没有问题,但是当我关闭它时,表单会更新第一个条目。让我说我刚刚完成了第三个条目的编辑,我已经完成了编辑。我想关闭表单并做一些其他事情。但是,我关闭了表单(我尝试了一个按钮,只是关闭了选项卡),表格中的第一个条目用第三个条目更新。基本上,我上次编辑的条目编辑正确,但是当表单关闭时,它也会更新第一条记录。知道怎么解决这个问题吗? (如果不清楚请告诉我,我会尽力澄清)
我正在考虑为On Close事件写一个声明,但我不知道该放什么。
编辑:额外信息
现在,这个表只有三个记录。在表单中,当我单击组合框时,它具有三个记录的下拉列表。让我们说我点击了第二个。单击它后,“位置”字段将填充相关信息,并与计数字段相同。现在让我们说计数字段中的当前值是“9”,我想将其更改为4.我输入4,按更新,我提示一个框,说“你确定要更新1行” 。我按是,然后更新。更新工作正常,它就在我关闭时。我将举两个例子
1)我刚刚编辑了第二条记录,当我关闭时,它没有提示任何东西,它只是顺利关闭,但是当我检查信息时,第一条和第二条记录现在完全相同。
2)让我说我刚编辑了第一张唱片。当我关闭它时,会弹出一个窗口,上面写着“写入冲突,自开始编辑以来,该记录已被其他用户更改。如果保存记录,则会覆盖更改”。然后它有三个选项,保存记录,复制到剪贴板和删除更改。
哦,我是如何让它自动填充的,我有代码:
Private Sub cboID_Change()
Me.txtLocation = Me.cboID.Column(1)
Me.txtCount = Me.cboID.Column(2)
End Sub
希望这可以澄清一点。 :(