MS Access OpenForm已取消 - 错误2501

时间:2016-05-13 13:34:41

标签: database vba ms-access-2010

我被要求对我工作的小组使用的Access数据库中的表单进行一些修改。我必须添加一个类似于存在的数据输入表单,因此我复制了一个现有表单并进行了一些修改。当我单击按钮打开表单进行测试时,我收到此错误:

运行时错误' 2501' OpenForm行动被取消了。

以下是调用此错误的代码:

Private Sub cmdCPE_EntryForm_Click()
On Error GoTo Err_cmdCPE_EntryForm_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "CPE_EntryForm"
    DoCmd.OpenForm stDocName ', , , stLinkCriteria

Exit_cmdCPE_EntryForm_Click:
    Exit Sub

Err_cmdCPE_EntryForm_Click:
    MsgBox Err.Description
    Resume Exit_cmdCPE_EntryForm_Click

End Sub

提前获得任何奖励。

6 个答案:

答案 0 :(得分:2)

您要打开的表单处于设计视图中。关闭设计视图

答案 1 :(得分:1)

我在 MSAccess 中的表单打开错误 2501“表单打开已取消”错误是由于表单的数据源表不存在。

答案 2 :(得分:0)

如果数据库出现问题,则在调用OpenForm方法时可能会出现运行时错误2501。

请尝试按照“从损坏中恢复”和“症状:无法打开表单或报告”标题下的此链接中的步骤进行操作?

http://allenbrowne.com/ser-47.html

新表单的Open或Load事件也可能存在问题,可能值得发布该代码以供审核。

答案 3 :(得分:0)

当我的表单引用不再存在的查询时,我收到此错误。 一旦我将表单更新为指向现有查询,我的代码就可以正常工作。

答案 4 :(得分:0)

当我想打开包含数据位于另一个文件夹中的子表单的表单时,我遇到了完全相同的错误。通过减少背部基部的路径,这已经修复了错误。例如,第一条路径为C:\Dev\Application\Vers1\Prog\Debug\myAppDB.accdb,因此我减少了路径的长度:C:\Dev\Debug\myAppDB.accdb,这解决了问题。网络路径发生了同样的错误,我用同样的方法修复了它。

假设你有: 一个名为“cmdOpenForm”的命令按钮和 一个名为“myForm”的表单

我还在命令按钮的On Click事件中添加了此代码:

Private Sub cmdOpenForm_Click()
On Error GoTo Err_cmdOpenForm_Click
    If CurrentProject.AllForms("myForm").IsLoaded = True Then
        DoCmd.Close acForm, "myForm"
    Else
        DoCmd.OpenForm "myForm", acNormal, , , , acWindowNormal, Me.Form.Name
    End If
Exit_cmdOpenForm_Click:
Exit Sub
Err_cmdOpenForm_Click:
MsgBox "Error number : " & Err.Number & vbCrLf & "Error: " & Err.Description, vbCritical
Resume Exit_cmdOpenForm_Click
End Sub

答案 5 :(得分:0)

您的RecordScorce无法识别。在Code中键入recordScource,然后在Menu Tool \ Reference中更改引用的位置。然后调试您的项目,然后将其保存。