【发布时间】:2014-08-28 12:02:25
【问题描述】:
我有一个数据库,其中数据经过多个步骤,用户可以报告和“解决”数据库中的这些错误。
一旦在我的tbl_errors 中添加错误,他们就会继续解决它。一旦他们解决了错误 irl,也将“解决”数据库中的错误,以跟踪时间等。
这一切都像一个魅力,在添加错误时我从未遇到任何问题。乍一看,“解决”问题也完美无缺。然而问题是,一旦我开始连续“解决”很多错误,我的代码就会突然停止工作。
它不会冻结或返回任何错误,当我使用断点和 f8 单步执行代码时,所有变量似乎也是正确的。一切都照常进行,只是它不再做任何事情。这仅适用于该特定错误。当我添加新错误并尝试“解决”它们时。它像往常一样工作。
重要提示:
仅当我开始快速单击求解按钮时才会发生这种情况,从而真正快速地调用函数。
仅针对特定错误冻结。 (可以是多个)所有其他错误都可以正常解决,说明代码还在运行。
我已经单步执行了整个代码,同时检查了所有的键和变量,并且每个变量都是正确的。
即使我的代码通过了记录集,它也没有更新任何东西?
下面是我的关系屏幕的一部分,以便更好地理解表结构以及代码的特定部分。
在 OnClick 事件中调用代码:
Private Sub solve_Click()
SolveError getorderid(gvStepDelivery), get_errorID(gvCategory, get_stepsID(gvStepNr))
Me.qry_errors_subform.Requery
Me.Refresh
End Sub
自写函数SolveError:
Public Function SolveError(Current_order_ID As Long, Category_ID As Long)
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("tbl_errors", dbOpenDynaset)
With rs
.FindFirst "[Error_ID] = " & DLookup("Error_ID", "tbl_errors", "[Current_orders_ID] = " & Current_order_ID & " AND [Category_ID] = " & Category_ID)
.Edit
![Solved_By] = get_user
![Solved_Date] = Date
![Solved_Time] = Time
.update
End With
rs.Close
Set rs = Nothing
End Function
还涉及其他代码部分(请参阅 SolveError 的参数),但我认为它们不会添加一些有用的信息,因为它们只是返回正确的值。 (他们是正确的!)
【问题讨论】:
标签: sql vba ms-access ms-access-2007