【问题标题】:MS Access OpenForm was cancelled - error 2501MS Access OpenForm 已取消 - 错误 2501
【发布时间】:2016-09-09 17:40:08
【问题描述】:

有人要求我对与我合作的小组使用的 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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这正是我的问题。我有一个用于添加“类型”的通用表单,我使用公共函数对其进行编程,并从不在列表事件中调用下拉控件。当我将这个通用表单引入一个新应用程序时,它已保存在这个新应用程序中不存在的行源中。当它试图加载时,它正在取消打开。我清除了行源,现在它可以工作了!干得好。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

      • 我赌的是Form_Open。​​
      【解决方案5】:

      当我想打开一个包含其数据位于另一个文件夹中的子表单的表单时,我遇到了完全相同的错误。通过减少背基的路径,这已经修复了错误。例如,第一个路径是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
      

      【讨论】:

        【解决方案6】:

        您的 RecordScorce 未被识别。在代码中键入您的记录源,然后在菜单工具\参考中更改参考的位置。然后调试您的项目,然后保存它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-29
          • 1970-01-01
          • 2010-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多