我被要求对我合作的一个小组使用的 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
提前谢谢您的帮助。
当我的表单引用不再存在的查询时,我收到此错误。 一旦我更新了表单以指向现有查询,我的代码就可以正常工作。
您尝试打开的表单位于设计视图中。关闭设计视图
我的表单打开错误 2501 MSAccess 中的“表单打开已取消”错误是由于表单的数据源表不存在。
如果数据库存在问题,调用 OpenForm 方法时可能会出现运行时错误 2501。
尝试按照此链接中“从损坏中恢复”和“症状:无法打开表单或报告”标题下的步骤进行操作?
http://allenbrowne.com/ser-47.html
也可能是新表单的打开或加载事件的问题,可能也值得发布该代码以供审查。
当我想打开一个包含数据位于另一个文件夹中的子表单的表单时,我遇到了完全相同的错误。通过减少背侧基底的路径,这修复了错误。例如,第一条路径是
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
您的 RecordScorce 无法识别。在代码中输入您的 recordScource,然后在菜单工具\参考中更改参考的位置。然后调试您的项目,然后保存它。
尝试关闭要打开的表单,然后重新运行代码。为我工作。
在对子表单上的某些 VBA 代码进行小更改后打开表单时,我遇到了这个确切的错误。对数据库进行“压缩和修复”修复了它。
就我而言,当另一个表单处于设计模式时,我无法通过调试模式下的表单打开它