代码未正确执行但似乎没有出现错误

时间:2013-02-18 19:38:24

标签: ms-access vb6 dao jet

最近有两次,代码与下面的代码基本相同,无法正常执行。

在同一时间段内,它也会正常执行数百次。

在2次打印时,已打印出滑动但没有记录添加到数据库中,并且没有向用户报告错误。

我无法理解这是怎么回事。

发生错误的计算机通过有线网络连接到共享的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"

他们最近使用新的布线和机器升级了他们的网络,但我看不出任何理由,特别是为什么这可能是问题。

1 个答案:

答案 0 :(得分:0)

您可以使用QueryDef对象添加记录,然后测试.RecordsAffected属性以查看实际添加的记录数,而不是依赖于引发的错误。

这里的一些细节: How can I get a value from the update query prompt in Access VBA?

总结:

  1. 使用两个parameters[TheDate][TheOpID]
  2. 创建追加查询
  3. 运行如下所示的代码:
  4. Dim qdf As New QueryDef
    Set qdf = DB.QueryDefs("qappMyCoolParameterQuery")
    With qdf
        !TheDate = Now
        !TheOpID = intOpId
        .Execute
        If .RecordsAffected = 0 Then
            'Freak Out, alert user, etc
        End If
    End With