app应该通过网络驱动器.EXE的快捷方式调用,以避免通过wifi网络发生JET相关错误?

时间:2011-11-23 04:06:00

标签: ms-access vb6 jet

我在使用Access-MDB数据库的VB6应用程序时遇到问题。

客户通过wifi网络将.MDB和应用.EXE放置在网络驱动器上。在其中一个工作站上,当通过网络驱动器上.EXE的快捷方式调用应用程序时,没有错误,但是当应用程序安装并在工作站上本地运行时(使用.MDB保留在网络驱动器上)有一个错误。

以下是代码的相关部分。报告的错误消息是“此时无法更新。请稍后再试。”

Private Sub UpdateHistory()

Dim ecnt As Integer
Dim bInTrans As Boolean

On Error GoTo HistErr

bInTrans = False
ecnt = 0
Randomize
DBEngine.SetOption dbLockDelay, 90 + Rnd * 60
DBEngine.Idle dbRefreshCache
SWWorkspace.BeginTrans
If action = 1 Then
    historyfile.AddNew
    historyfile("customerid") = gblpkey
    historyfile("operatorid") = CurrentOperator
    historyfile("type") = gbltype
    historyfile("date") = Format(Now, "dd/mm/yyyy hh:mm:ss")
    If gbltype = 1 Or gbltype = 2 Or gbltype = 6 Then
      historyfile("rtype") = "Manual"
    End If
Else   
    historyfile.Edit
End If
saveDate = historyfile("date")
historyfile("memo") = ptext
historyfile.Update
SWWorkspace.CommitTrans dbForceOSFlush
bInTrans = False

Exit Sub

HistErr:

    ecnt = ecnt + 1
    If ecnt > 10 Then
        If bInTrans Then
          SWWorkspace.Rollback
          bInTrans = False
        End If
        Screen.MousePointer = vbDefault
        MsgBox "Unable to update at this time. Try again later. "     
        Exit Sub
    End If

  sleep 1
  DBEngine.Idle dbRefreshCache
  Resume

End Sub

2 个答案:

答案 0 :(得分:2)

你需要抓住真正的错误。 ATM告诉我们的唯一错误信息是来自应用程序的自定义错误消息“此时无法更新。请稍后再试。” .... 10次错误重试后捕获所有错误消息。

答案 1 :(得分:0)

当我将EXE放在网络驱动器上并在另一个工作站上放置一个快捷方式时,问题就消失了。我只能假设通过快捷方式向网络位置调用EXE可以防止在访问MDB时wifi连接丢失。