将记录添加到Recordset后,子程序中没有可用的新记录

时间:2012-07-12 09:57:56

标签: excel ms-access vba excel-vba

我有一个子程序,可以在记录集中添加新记录。

Dim RS As Recordset
Set RS = getRSObject("Tickets")
RS.AddNew
RS.Fields("subject").Value = Me.txtSubject.Text
RS.Fields("detail").Value = Me.txtDetail.Text
RS.Fields("dateopen").Value = Format(Now, "mm/dd/yy hh:nn")
RS.Fields("status").Value = "Open"
RS.Fields("user").Value = Me.ComboUser.Text
RS.Fields("assignedto").Value = Me.comboAssignedTo.Text
RS.Fields("priority").Value = Me.ComboPriority.Text
RS.Fields("category").Value = Me.comboCategory.Text
RS.Fields("unplanned").Value = Me.cbUnplannedWork.Value
RS.Save

RS.Close
doEvents 

我的问题是在同一个模块中还有几行,我通过查询相同的访问表来更新票证列表。但是这个新记录不在这个记录集中。几乎就好像在子程序完成之前没有写入访问记录。

在上述程序完成后我手动刷新我的票据列表我看到我插入的记录。

如果我将插入作为完整的sql语句运行,如“插入票证(......”)这样工作正常,我看到列表中的记录,但它容易出问题,如果用户放置这样的字符作为文本字段中的连字符。

任何人都可以给我一个命令,强制将数据写入Access数据库,并在子结束之前使用。

1 个答案:

答案 0 :(得分:1)

尝试使用RS.Update代替RS.Save

Dim RS As Recordset
Set RS = getRSObject("Tickets")
RS.AddNew
RS.Fields("subject").Value = Me.txtSubject.Text
RS.Fields("detail").Value = Me.txtDetail.Text
RS.Fields("dateopen").Value = Format(Now, "mm/dd/yy hh:nn")
RS.Fields("status").Value = "Open"
RS.Fields("user").Value = Me.ComboUser.Text
RS.Fields("assignedto").Value = Me.comboAssignedTo.Text
RS.Fields("priority").Value = Me.ComboPriority.Text
RS.Fields("category").Value = Me.comboCategory.Text
RS.Fields("unplanned").Value = Me.cbUnplannedWork.Value

RS.Update


RS.Close
doEvents