我有一个子程序,可以在记录集中添加新记录。
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数据库,并在子结束之前使用。
答案 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