因此,我尝试使用按钮单击来打开下一个表单(在我的表单流中),并使用openArgs将ID传递给下一个表单:
docmd.openform "NextForm",,,,,, MainID
docmd.close acform, "CurrentForm", acSaveYes第二个表单将无法打开...我以前从未在sub中使用docmd.openform遇到过此问题。然而,这是我第一次使用OpenArgs....usually,我会将一个值传递给一个隐藏的文本框,但我正在尝试不同的东西。
例程运行时没有错误,currentform恰如其分地关闭。这就像access确信第二个表单实际上是开放的,但它没有显示出来。此外,如果我试图显示数据库对象窗口,只需单击从there.....nothing打开表单
请帮帮我!谢谢,贾斯汀
发布于 2010-07-24 22:20:38
这就像是access确信第二个表单实际上是开放的,但它没有显示出来。
如果在表单显然无法打开时没有收到错误消息,请检查Forms集合中是否存在NextForm。在“即时”窗口中,尝试:
? Forms("NextForm").Name会发生什么?Forms集合包括打开的表单。如果您收到一条错误消息,指出找不到NextForm,则说明NextForm未打开。但是,如果该命令返回名称NextForm,则表单是打开的,但您看不到它。
这至少可以通过两种方式实现:
如果窗体确实没有打开,并且您没有收到错误消息,请确保没有关闭SetWarnings和Echo。
如果这些建议不能帮助您找到解决方案,请向我们展示NextForm试图用OpenArgs做什么。如果你暂时禁用NextForm的OpenArgs处理代码,你能打开它吗?
更新:还有几个问题...
是否可以在“设计”视图中打开NextForm?
如果在“即时”窗口中尝试执行以下命令,会发生什么情况?错误消息?
DoCmd.OpenForm "NextForm",,,,,acWindowNormal发布于 2015-06-06 01:03:50
您可以在不使用open Args的情况下打开并控制表单
为此,您可以打开另一个窗体,就好像它是一个类一样
创建一个名为GlobalVars的模块,其中包含以下代码行:
Public Form_MyFormNameToOpen as Form_MyFormNameToOpen(您打开的表单将保持打开状态,直到此变量“死亡”,因此请将其设置为全局变量以使其保持活动状态)
MyFormNameToOpen是您要打开的表单的名称,在我的一些示例代码中,前面有Form_。这告诉access获取一个“窗体类”,即你创建的一个窗体。
然后在你想要打开一个表单的代码中使用:
' Opens the form using it as it were a class
Set GlobalVars.Form_MyFormNameToOpen = New Form_MyFormNameToOpen
' The modify the form you have just opened however you want to.
With Form_MyFormNameToOpen
.Visible = True
' This relies ont he control names never changing
.Controls("ProviderID") = 10
.Controls("ProviderFileID") = 11
' it's better to use properties created on the called form
' eg
.MyLetProviderID = 10
.MyProviderFileID = 11
End With我希望这能帮到你。
我发现除了最基本的事情之外,使用开放参数是一件非常痛苦的事情。使用这样的表单使生活变得容易得多。
(也许您可以对子表单等使用类似的技术...)
https://stackoverflow.com/questions/3325321
复制相似问题