| 
    
     |  | ▼よろずや さん: ご回答ありがとうございました。
 
 >他のフォームからは参照のみで書き込みはしないような場合には、
 >Private 変数にして、Get Property を使うこともあります。
 Get Property について調べてみましたが、ちょっと難しそうだったので、
 
 >変数ではなくフォーム上のテキストボックスにしてしまいます。
 >(デバッグ時以外は不可視にします)
 こちらの方法でやってみました。
 帳票フォームでの検索時に、テキストボックスtxtfilterに
 検索条件を保存しておき、↓
 
 Private Sub setfilter()
 
 Dim strfilter As String
 Dim ctl As Access.Control
 
 For Each ctl In Me.Section(acHeader).Controls
 if ctl.ControlType = Access.acCheckBox
 If ctl.Value Then
 strfilter = strfilter & " and 資料名 like '*" & ctl.Controls.tag & "*'"
 End If
 End if
 Next
 
 Me.Filter = mid(strfilter,6)
 Me.FilterOn = true
 Me.txtfilter.value = mid(strfilter,6)
 
 単票フォームを表示するボタンのクリックイベントに下記のようにしたら
 DoCmd.OpenForm FormName:="単票フォーム", OpenArgs:=Me.連番
 With Forms("単票フォーム").RecordsetClone
 .Filter = Me.txtfilter.value
 .FilterOn = True
 .FindFirst "連番 = '" & Me.連番 & "'"
 If Not .EOF Then
 DoCmd.GoToRecord Record:=acGoTo _
 , Offset:=.AbsolutePosition + 1
 End If
 End With
 
 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」
 というエラーがでます。
 どのように直したらいいでしょうか?
 
 そもそもOpenArgs:=Me.連番のところでは、簡単に値を渡せるのに、
 filter設定は難しいですね。
 引き続き、ご指導お願いいたします。
 
 |  |