#1です
#1に記述した
> Me.FilterOn = Not Me.FilterOn
は、やってみていない・・・・という事でしょうか。
> stDocName = "入力用"
>
> stLinkCriteria = "[番号]=" & Me![番号指定]
> DoCmd.OpenForm stDocName, , , stLinkCriteria
これは、推測したものに一致します。
Me![番号指定] が 123 であれば、起動されたフォーム「入力用」には
Me.Filter = "[番号]=123"
Me.FilterOn = True
が設定されていると思います。
Access のバージョンが 2007 以上で、「移動ボタン」を「はい」として表示しているのなら
レコード移動の右側に表示されている「フィルタ適用」をクリックすることで解除できます。
(2010 は持っていないので、違っていたらすみません)
「移動ボタン」を「いいえ」として表示していないとか、
バージョンが 2007 以前のものだとかした場合、
#1で記述した方法が楽なのかと思います。
コマンドボタン「btn1」を配置したとした場合、クリック時に以下を記述
Private Sub btn1_Click()
Me.FilterOn = Not Me.FilterOn
End Sub
このフォームが、他のフォームとどうからんで・・・等々、私には見えてません。
操作上使える方法なのか、実際にやってみてください。
なお、
> 検索の様な形
であれば、やり方は変わってきますが、できないことはありません。
せっかくなので、その方法も記述しておきます。
起動するフォームでの記述)
> stLinkCriteria = "[番号]=" & Me![番号指定]
> DoCmd.OpenForm stDocName, , , stLinkCriteria
この stLinkCriteria は、
WhereCondition 部分に指定するのではなく OpenArgs 部分に指定します
DoCmd.OpenForm stDocName, , , , , , stLinkCriteria
起動されたフォーム Form_Open での記述)
Private Sub Form_Open(Cancel As Integer)
If (Not IsNull(Me.OpenArgs)) Then
With Me.RecordsetClone
.FindFirst Me.OpenArgs
If (Not .NoMatch) Then Me.Bookmark = .Bookmark
End With
End If
End Sub
OpenArgs が設定されていたら、検索して、あったらそこを表示するように・・・
実際にやってみる/みないは、自由だと思いますが、回答した側から見ると、残念です。
お礼
出来ました!! ながらくお付き合いくださってありがとうございました