【问题标题】:Update a recordset in Access 2010在 Access 2010 中更新记录集
【发布时间】:2013-12-26 17:17:28
【问题描述】:

我需要一个简单的 VB 更新查询,我可以在其中更新表中最后一条记录中的一些字段。

我有一个带有一组组合框的表单,当我按下Edit 按钮时,我应该能够从组合框中选择不同的值,当我按下Save 时,它应该更新我表中的最后一条记录与我的组合框中的最新选择。请指教。

我有以下代码,但它只是垃圾,它不会编辑我表中的任何内容。

Private Sub Command51_Click()
Dim RS As DAO.Recordset
Dim RecID As Integer
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset)
RecID = DLast("[ID]")
RS.MoveFirst
Do Until RS.EOF
If RS("ID") = RecID Then
    RS.Edit
    RS("WLAN") = Me.Text34
    RS("Controller Version") = Me.Text38
    RS("AP Model") = Me.Text36
    RS("Security") = Me.Text39
    RS("Wired Network") = Me.Text37
    RS("Installation Type") = Me.Text40
    RS("Quoted Device") = Me.Text41
    RS.Update
    RS.Close

     End With

     MsgBox "Device info were edited and stored.", vbExclamation

结束子

这是表结构[已编辑]

【问题讨论】:

标签: sql vb.net ms-access-2010


【解决方案1】:

根据您告诉我们的内容,我会在 Form_Current 事件中将默认值更改为表单上每个控件的当前值。此外,在表单设计模式下,将所有控件设置为锁定。当用户单击编辑按钮时,我将简单地移动到新记录。当然,除非您锁定所有控件,否则用户将能够编辑当前记录。请注意,我尚未测试此代码。

Private Sub Form_Current()
   On Error Resume Next   'not all controls have the "DefaultValue" property, such as labels'
   Dim ctl as Control
   For Each ctl in Me.Controls
       ctl.Locked = Not Me.NewRecord
       ctl.DefaultValue = ctl.Value
   Next ctl
End Sub

Private Sub cmdEdit_Click()
   Access.Application.DoCmd.RunCommand acCmdRecordsGoToNew
End Sub

Private Sub cmdSave_Click()
   Me.Dirty = False
End Sub

【讨论】:

  • 不幸的是,它不起作用。你能给我正确的更新查询语法吗,因为我尝试了很多次,每个都返回一个错误。只是编辑最后一个记录集的简单更新。谢谢。
  • 成功了。我使用了以下代码: Dim RS As DAO.Recordset Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset) RS.MoveLast RS.Edit RS("WLAN") = Me.Text34 RS("Controller Version") = Me .Text38 RS("AP 型号") = Me.Text36 RS("安全") = Me.Text39 RS("有线网络") = Me.Text37 RS("安装类型") = Me.Text40 RS("引用设备") = Me.Text41 RS.Update Set RS = 无 感谢 Bobort 抽出宝贵时间提供帮助。我很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多