Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 保存新记录时更改现有记录_Ms Access_Vba - Fatal编程技术网

Ms access 保存新记录时更改现有记录

Ms access 保存新记录时更改现有记录,ms-access,vba,Ms Access,Vba,问题:我有类似于信息快照的记录,在保存新记录时,我需要能够将当前现有记录上的“是/否”字段从False更改为True 为了便于讨论,记录X和Y是相同的主题,只是在不同的时间点(相同的文档,不同的修订)。我需要保存一个新记录,记录Z,它与今天的更新主题相同。保存记录Z时,我希望记录Y的复选框从False修改为True,以显示它已过时 保存新记录时,我确实有一个未绑定的文本框,显示现有记录编号(名为txtID)。有没有一种方法可以将对该框的引用移植到该记录上,以便更改该记录上的复选框控件(名为chk

问题:我有类似于信息快照的记录,在保存新记录时,我需要能够将当前现有记录上的“是/否”字段从False更改为True

为了便于讨论,记录X和Y是相同的主题,只是在不同的时间点(相同的文档,不同的修订)。我需要保存一个新记录,记录Z,它与今天的更新主题相同。保存记录Z时,我希望记录Y的复选框从False修改为True,以显示它已过时

保存新记录时,我确实有一个未绑定的文本框,显示现有记录编号(名为txtID)。有没有一种方法可以将对该框的引用移植到该记录上,以便更改该记录上的复选框控件(名为chkObs)

我当前保存记录的编码如下:

Private Sub cmdSave_Click()
  DoCmd.OpenTable "tblTasks", acViewNormal
  DoCmd.Requery
  Dim db As Database
  Dim rs As DAO.Recordset

  Set db = CurrentDb
  Set rs = db.OpenRecordset("Tasks")

  rs.AddNew
  rs("Namefield").Value = Me.NameD.Value
  rs("Reqt").Value = Me.ReqT.Value
  rs("Plant").Value = Me.Plant.Value
  rs("Requestor").Value = Me.Requestor2.Value + " " + Me.Requestor.Value
  rs("TaskDue").Value = Me.TDD.Value
  rs("AssignedERDM").Value = Me.AE.Value
  rs("Package").Value = Me.SUBN.Value
  rs("Comments").Value = Me.COM.Value
  rs("RequestRec").Value = Me.DRR.Value
  rs("Hold").Value = Me.H.Value
  rs("QuantityT").Value = Me.QT.Value
  rs("QuantityC").Value = Me.QC.Value
  rs("QuantityO").Value = Me.QR.Value
  rs("ERDMLogged").Value = Me.ELT.Value
  rs("Closed").Value = Me.Cl.Value
  rs("Hyperlink").Value = Me.hy.Value
  rs("DateMod").Value = Me.lm.Value
  rs("StatusAW").Value = Me.SSO.Value
  rs("CompleteDate").Value = Me.CD.Value

  rs.Update
  DoCmd.Close acTable, "tblTasks", acSaveYes
  DoCmd.Requery

End Sub

您可以将记录ID保存到全局变量、未绑定的文本框或临时变量。然后在需要时引用该变量。运行更新操作SQL。或者,您可以只在每个条目上加盖日期/时间戳,并且只有最新的记录是“当前的”,其他所有记录都将是“过时的”。为什么需要代码来添加记录?为什么不使用绑定表单进行数据输入?这是一个多用户拆分数据库吗?我预计如果多个用户输入记录,按代码编辑的“是/否”字段将“不同步”。