【问题标题】:How can I insert data into Access database fields?如何将数据插入 Access 数据库字段?
【发布时间】:2013-12-05 14:45:29
【问题描述】:

我创建了多个表单,每个表单都包含多个按钮。最终用户将按顺序浏览表单,然后选择一个按钮并转到下一个表单,依此类推。

我还创建了一个存储输入数据的表。例如;如果用户单击按钮 A,则指定字段的值为“A”,依此类推。换句话说,每个按钮都会将特定的数据输入到特定的字段中。

我最终想要的是在表格集完成后有一个完整的记录集(行)。

我在第一个表单的第一个按钮中使用了以下代码

Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset)
RS.AddNew
RS("WLAN") = "ARUBA"
RS.Update
Set RS = Nothing

在后面的表单(按钮)中,我使用了如下代码

Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset)
RS.Edit
RS("Security") = "WPA2-PSK"
RS.Update
Set RS = Nothing

现在发生的情况是,第一个表单序列(按钮)成功地将数据输入到我的表 [数据] 的第一行中,但是当我重新开始并选择其他按钮时,现有的行会使用新的选择进行编辑。

我想要的是添加一条新记录并将数据插入其中,而不是编辑以前的记录。

非常感谢您的帮助,很抱歉发了这么长的帖子。

谢谢你, 纳赛尔

【问题讨论】:

  • 在编辑之前,您需要找到要更新的记录。但是,您最好收集所有数据并同时添加,而不是添加、更新、更新、更新......
  • 谢谢弗雷德,但你能告诉我如何做这两个选项。我更喜欢第一个选项,因为我有很多表格,所以很难收集所有数据。还是有其他办法?
  • 还要解释一下,我想插入多条记录,但在第一个循环之后它会一直返回到前一个并编辑所有现有数据。
  • 我发布的链接向您展示了如何找到要更新的记录。我猜你有一些字段是唯一标识符? IE。一个自动递增的字段?只有该记录具有的字段中的某些值。

标签: sql forms insert ms-access-2007 edit


【解决方案1】:

创建一个变量来保存您正在处理的记录的 ID。在本例中,我将其命名为 RecId

添加记录

Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset)
RS.AddNew
RS("WLAN") = "ARUBA"
RecId = RS("ID")
RS.Update
Set RS = Nothing

然后更新同一条记录

Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset)
RS.MoveFirst
Do Until RS.EOF
    If RD!ID= RecId Then
        RS.Edit
        RS("Security") = "WPA2-PSK"
        RS.Update
    End If
    RS.MoveNext
Loop
Set RS = Nothing

如果您不想更新任何记录而只想添加新记录,则只需使用添加代码。您需要进行一些检查,但这应该会为您提供所需的基础。

【讨论】:

  • 抱歉迟到了。我真的很感激弗雷德。我会尝试你的建议并让你知道。再次感谢
  • 我尝试了更新代码,但没有成功。它没有在桌子上添加任何东西。起初我创建了一个名为 RecId 的整数,然后我在这一行中将 RD 更改为 RS If RD!ID= RecId Then 但这也没有帮助。谢谢
  • 成功了!我使用了以下代码: Dim RS As dao.Recordset Dim RecID As Integer Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset) RecID = DLast("[ID]", "Data") RS.MoveFirst Do until RS。 EOF If RS("ID") = RecID Then RS.Edit RS("ControllerVersion") = "5.x" RS.Update End If RS.MoveNext Loop Set RS = Nothing 谢谢 Fred。我真的很感激。
  • @NasserS.Khashan 没问题,很高兴它有帮助
猜你喜欢
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多