MS Access - 仅在编辑字段后自动填充第一条记录(表格)

时间:2014-02-21 14:58:35

标签: sql database vba ms-access combobox

只是一个单挑,我对关系数据库很新,所以我的问题可能是一个简单的修复。

目前,我有一张包含以下数据的表格。

ID(1,2,3,4,5)

地点(加拿大,美国,日本,澳大利亚,委内瑞拉)

计数(4,6,2,91,23)

我创建了一个带有组合框和两个文本字段的表单。目标是我希望能够单击组合框,让它显示所有ID,当我单击ID时,它会自动填充其他两个文本字段以及相应的信息。谷歌搜索了一下之后,我找到了办法。在组合框的“更改”下的“事件”选项卡中,我编写了这两行代码。

Me.txtLocation = Me.cboID.Column(1)

Me.txtCount = Me.cboID.Column(2)

但是,我也希望能够在自动填充后编辑此信息。我遇到的问题是,当我更改两个文本字段中的任何一个时,它总是编辑第一个记录。

因此,例如,如果我单击ID#4,并且我更改了“Count”,它将更改ID#1的“Count”。我知道我做错了什么?

P.S。 (我有编程经验,但没有VBA)

提前致谢!

编辑:

Private Sub txtCount_AfterUpdate()

Dim strSQL As String

strSQL =“UPDATE aDuh SET Count ='”& Me.Count& “',位置='”& Me.txtLocation& “'WHERE ID =”& Me.cboID& “”

DoCmd.RunSQL(strSQL)

End Sub

Private Sub txtLocation_AfterUpdate()

Dim strSQL As String

strSQL =“UPDATE aDuh SET Location ='”& Me.txtLocation& “',Count ='”& Me.txtCount& “'WHERE ID =”& Me.cboID& “”

DoCmd.RunSQL(strSQL)

End Sub

1 个答案:

答案 0 :(得分:2)

不要将表单绑定到表。在表单上放置一个文本框,其Visible属性设置为False。在该文本框中,输入主键字段的值(应该是自动编号字段)然后在更新记录时,传递UPDATE SQL语句,根据主键的值更新表格

将strim作为String

strSQL =“UPDATE aDuh SET Location ='”& Me.txtLocation& “',Count ='”& Me.txtCount& “'WHERE ID =”& Me.cboID& “”

DoCmd.RunSQL(strSQL)