访问VBA抛出非上市的错误代码
问题描述:
我看到这样的错误代码在我的Access 2000中VBA:访问VBA抛出非上市的错误代码
-2147352567,记录在“[SomeTable]”被其他用户删除。
所以,2个问题:
1)如何处理/避免这样的错误代码?
2)任何人都可以解释为什么我得到一个错误代码,似乎没有MS文档中存在吗?有什么方法可以破译这段代码吗?它是几个代码的组合吗?任何关于这个主题的指导将不胜感激。
Public Sub Form_Open(Cancel As Integer)
' Check for unposted record/regardless of Date/Shift
' If there is an unposeted record goto it
Dim lCheck
Dim sPress As String
On Error GoTo Form_Open_Err
GotoRecord:
If bPressConsumptionOpenRan = True Then
lCheck = DLookup("PressConsumptionID", "spI_GetUnPostedRecord")
If Not IsNothing(lCheck) Then
Me.txtPressConsumptionID.SetFocus
DoCmd.FindRecord lCheck
Else
DoCmd.SetWarnings False
DoCmd.OpenQuery ("spI_InsertNewPressConsumption")
Me.Requery
DoCmd.SetWarnings True
End If
End If
Form_Open_Exit:
Exit Sub
Form_Open_Err:
sErrMsg = Err.Number & "-" & Err.Description
MsgBox sErrMsg, vbCritical + vbOKOnly + vbInformation, "Program Error"
所以我只是注释掉
对错误转到
线Form_Open()的Form_Load()和Form_Activate(),仍然没有调试器调用。这个错误在数据库打开时显示,所以我不知道代码中的错误可能在哪里。
这里是IsNothing代码:
Public Function IsNothing(vCheck As Variant) As Boolean
On Error GoTo IsNothing_Err
If IsNull(vCheck) Then IsNothing = True: Exit Function
If IsEmpty(vCheck) Then IsNothing = True: Exit Function
If Trim(vCheck) = "" Then IsNothing = True: Exit Function
IsNothing_Err:
IsNothing = False
End Function
现在我得到一个类似的错误在Form_Current():
Private Sub Form_Current()
Dim sUser As String
On Error GoTo Form_Current_Err
If IsNothing(Me.dtpUsageDate) Then
Me.dtpUsageDate = Date 'This line throws error.
End If
...Ommitted to save space. Not relevant...
Form_Current_Err:
sErrMsg = Err.Number & "-" & Err.Description
MsgBox sErrMsg, vbCritical + vbOKOnly + vbInformation, "Program Error"
Resume Form_Current_Log
Form_Current_Log:
On Error Resume Next
Call LogError(sErrMsg, "PressConsumptions_Form_Current")
GoTo Form_Current_Exit
End Sub
错误消息:
-2417352567在这个控制中没有任何对象。
是此消息与另一个我们已经看到?任何想法纠正?
答
错误号和消息表明,我认为这是从Access之外的问题。事实上,您正在执行保存的查询,该查询的名称暗示它在数据库服务器上运行SPROC,这表明我后端是SQL Server或其他后端。
这是在Access中一个非常常见的错误,当你没有这两个主键并在后端表中的时间戳字段。这是由于Access无法准确地确定涉及哪个记录并且无法正确刷新显示的原因所致。有一个PK和一个时间戳字段通常可以解决问题。
,但可以通过别的东西,当然引起。
您是否使用ODBC表(http://support.microsoft.com/kb/172339)? – Fionnuala 2011-01-25 15:52:52
是的,我是。我仍然试图确定为什么/如何删除记录。我有一个子插入一个新的记录,我想通过运行该子处理这个错误代码。 – MAW74656 2011-01-25 15:54:54