我在使用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
答案 0 :(得分:2)
你需要抓住真正的错误。 ATM告诉我们的唯一错误信息是来自应用程序的自定义错误消息“此时无法更新。请稍后再试。” .... 10次错误重试后捕获所有错误消息。
答案 1 :(得分:0)
当我将EXE放在网络驱动器上并在另一个工作站上放置一个快捷方式时,问题就消失了。我只能假设通过快捷方式向网络位置调用EXE可以防止在访问MDB时wifi连接丢失。