Ms access Access 2003/VBA:打开参数/格式顺序中的位置

Ms access Access 2003/VBA:打开参数/格式顺序中的位置,ms-access,Ms Access,有一系列的表格a->B->C等 在A中,向用户询问参数,这些参数将作为B中所示表子集的where条件(使用DoCmd.OpenForm和“Detail”方法) 我还使用A中的参数在B中制作了一个漂亮的标题 问题1:如果B中没有任何命中(显示0条记录),用于标题的参数(即B表内容的搜索关键字)将丢失,因此我得到一个错误。我试图通过将参数作为“开放参数”发送来解决这个问题——这将给出正确的标题,但没有搜索结果(即,如果没有命中,则返回正确的结果)。但是,如果您从任何其他位置打开表单,如Access中

有一系列的表格a->B->C等

在A中,向用户询问参数,这些参数将作为B中所示表子集的where条件(使用DoCmd.OpenForm和“Detail”方法)

我还使用A中的参数在B中制作了一个漂亮的标题

问题1:如果B中没有任何命中(显示0条记录),用于标题的参数(即B表内容的搜索关键字)将丢失,因此我得到一个错误。我试图通过将参数作为“开放参数”发送来解决这个问题——这将给出正确的标题,但没有搜索结果(即,如果没有命中,则返回正确的结果)。但是,如果您从任何其他位置打开表单,如Access中的表单菜单,则会出现错误


问题2:我想要一个“后退”按钮(a如果您修改代码,使其仅在传递值时尝试使用
OpenArgs
,则可能可以消除
OpenArgs
方法中的错误

If Not IsNull(Me.OpenArgs) Then
    ' do something with OpenArgs
End If

如果您将代码修改为仅在传递值时尝试使用
OpenArgs
,则可能可以消除
OpenArgs
方法中的错误

If Not IsNull(Me.OpenArgs) Then
    ' do something with OpenArgs
End If

我可以看到一些想法,但也许你想说你希望通过后退按钮实现什么,以及表单是否保持打开状态?后退按钮只是给用户一种返回并更正之前选择的方式。这是学生的时间表,因此如果经理想为B组做些什么,那么他就会意识到应该是a组,他或她想返回并重做它(但是有很多参数,否则我会使用单个表单)。对于打开的表单,它们保持打开状态,但如果这对我有帮助,我可以更改它。因为它们保持打开状态,“关闭”按钮通常会作为“返回”按钮工作按钮。但是,我希望它100%健壮。关闭按钮会有什么问题?如果人们以错误的顺序关闭表单,这很容易检查。有时单击它时,您不会看到我希望您看到的表单,但会看到Access overview页面,该页面左侧有表、表单等菜单。I希望它始终使用相同的数据(通常是where条件)指向它前面的表单那么,正如它所做的那样。在B和C的打开事件中,您将上一个窗体的可见性设置为false,然后在“关闭”按钮上,检查上一个窗体是否打开,如果打开,则将可见性设置为true。为了确保数据相同,您可以通过编程方式设置记录源,而不是使用where语句。您还可以检查是否有任何分支窗体打开了任何代码,这些代码可能会重新打开窗体。设置可见性可防止打开和加载事件代码并运行和更改您的数据。它还可防止用户在无法看到窗体时关闭窗体!我可以看到一些想法,但您可能希望通过“上一步”按钮说明您希望实现什么,以及是否ms保持打开状态?后退按钮只是给用户一种返回并更正先前选择的方式。这是学生的时间表,因此如果经理想为B组做些事情,然后意识到应该是a组,他或她想返回并重做(但有大量参数,否则我将使用单表单).至于打开的表单,它们保持打开状态,但如果这对我有帮助的话,我可以对此进行更改。因为它们保持打开状态,所以“关闭”按钮通常会用作“后退”按钮。但是,我希望它100%健壮。关闭按钮会有什么问题?如果人们以错误的顺序关闭表单,这很容易检查。有时单击它时,您不会看到我希望您看到的表单,但会看到Access overview页面,该页面左侧有表、表单等菜单。I希望它始终使用相同的数据(通常是where条件)指向它前面的表单那么,正如它所做的那样。在B和C的打开事件中,您将上一个窗体的可见性设置为false,然后在“关闭”按钮上,检查上一个窗体是否打开,如果打开,则将可见性设置为true。为了确保数据相同,您可以通过编程方式设置记录源,而不是使用where语句。您还可以检查是否有任何分支窗体打开了任何可能重新打开窗体的代码。设置可见性可防止打开和加载事件代码运行和更改数据。它还可防止用户在无法看到窗体时关闭窗体!哦,伙计,我第一次尝试了这一点,但在将null与null进行比较时出错了!但是谢谢。哦,伙计,我先尝试了这个东西,但是在比较空和空时出错了!但是谢谢。