只是一个单挑,我对关系数据库很新,所以我的问题可能是一个简单的修复。
目前,我有一张包含以下数据的表格。
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
答案 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)