MS Access OpenForm 已取消 - 错误 2501

问题描述 投票:0回答:9

我被要求对我合作的一个小组使用的 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

提前谢谢您的帮助。

database vba ms-access-2010
9个回答
2
投票

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


2
投票

您尝试打开的表单位于设计视图中。关闭设计视图


2
投票

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


0
投票

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

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

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

也可能是新表单的打开或加载事件的问题,可能也值得发布该代码以供审查。


0
投票

当我想打开一个包含数据位于另一个文件夹中的子表单的表单时,我遇到了完全相同的错误。通过减少背侧基底的路径,这修复了错误。例如,第一条路径是

C:\Dev\Application\Vers1\Prog\Debug\myAppDB.accdb
,所以我减少了路径的长度:
C:\Dev\Debug\myAppDB.accdb
,这解决了问题。网络路径也出现同样的错误,我用同样的方法修复了它。

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

我还在命令按钮的单击事件上添加了此代码:

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

0
投票

您的 RecordScorce 无法识别。在代码中输入您的 recordScource,然后在菜单工具\参考中更改参考的位置。然后调试您的项目,然后保存它。


0
投票

尝试关闭要打开的表单,然后重新运行代码。为我工作。


0
投票

在对子表单上的某些 VBA 代码进行小更改后打开表单时,我遇到了这个确切的错误。对数据库进行“压缩和修复”修复了它。


0
投票

就我而言,当另一个表单处于设计模式时,我无法通过调试模式下的表单打开它

© www.soinside.com 2019 - 2024. All rights reserved.