【发布时间】:2013-02-03 08:07:54
【问题描述】:
最近两次,与下面基本相同的代码未能正确执行。
在同一时间段内,它也会正常执行数百次。
两次打印单据,但没有记录添加到数据库中,也没有向用户报告错误。
我无法理解这是怎么回事。
发生错误的计算机通过有线网络连接到一个共享的 Jet 数据库,其中大约有 8 台计算机。
On Error GoTo ErrorHandler1
BeginTrans
Dim RS as RecordSet
Dim strRS as string
strRS = "Select * from Blah"
Set RS = DB.OpenRecordset(strRS)
RS.AddNew
RS.Fields("Date1").value = Now
RS.Fields("OpID").value = intOpId
RS.Update
PrintSlip Now, intOpId
CommitTrans
Exit Sub
ErrorHandler1:
Rollback
MsgBox "There has been an error"
他们最近用新的电缆和机器升级了他们的网络,但我看不出任何原因,特别是为什么这可能是问题。
【问题讨论】:
-
您能提供 PrintSlip 的代码吗?在打印发生之后,代码是否有可能在该方法中引发错误?你见过 MsgBox 吗?
-
... 否则
CommitTrans代码可能有问题。我们可以看看吗? -
@Lynn Crumbling,您好抱歉耽搁了。包含的代码已大大简化,但 printslip 子没有错误处理程序,因此调用代码中的错误处理程序会捕获它。
-
@George begintrans、committrans 和 rollback 都是 dao dbengine 的内置方法,我没有它们的内部代码
-
@kjack
PrintSlip()在发送打印作业后做什么?有什么可能出错的吗?是否可以成功发送打印作业,但随后在PrintSlip()内部引发错误,从而导致Rollback在CommitTrans发生之前?