2012-04-20 52 views
1

有形式A的序列 - >乙 - “ç等访问2003/VBA:打开参数/ WHERE在形式序列

在A中,参数是从用户要求,将工作作为凡 - B中显示的表子集的条件(使用DoCmd.OpenForm和“Detail” - 方法)。

我也使用在A中的参数,以使一个很好的字幕中B.

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

问题2:我想要一个“返回”按钮(A <-B,B <-C等)。我刚刚接近第一,但是有时候我在意想不到的地方结束了。为了向后使用上述解决方案 - 首先,它甚至不能继续工作,其次,即使它做到了,它看起来非常低效,因为这部分搜索已经完成。

我从我的观点和经验中描述了这个问题,但并不觉得“锁定”了这一点。如果你知道一个完全不同的方法,请告诉我。

+1

我可以看到一些想法,但也许你想说说你希望通过后退按钮实现什么,以及表单是否保持打开状态? – Fionnuala 2012-04-20 18:13:41

+0

后退按钮只是为了让用户找回并纠正之前的选择。这是一个学生的时间表,所以如果经理想为B组做些事情,然后意识到它应该是A组,他或她想回去并重做它(但有很多参数,否则我会使用单一表格)。至于开放形式,他们保持开放,但如果它能帮助我,我可以改变它。因为它们保持打开状态,所以通常“关闭”按钮将作为“后退”按钮。但是,我希望它100%健壮。 – 2012-04-20 22:51:22

+0

关闭按钮有什么或不会发生什么问题?如果人们按照错误的顺序关闭表格,那很容易检查。 – Fionnuala 2012-04-20 22:53:38

回答

1

也许你可以消除在OpenArgs方法中的错误,如果您修改代码以仅在通过值时尝试使用OpenArgs

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

哦,男人,我试过这第一件事,但犯了一个错误比较null null!但是,谢谢。 – 2012-04-21 08:02:29