2011-05-25 10 views
0

現在、私はMS Accessデータベースが別のサブフォームの特定のレコードに移動できるように実装されています。しかし、これはフィルタをオンのままにし、フィルタをオフにすると、サブフォームは全体のセットの最初のエントリに戻ります。このレコードに移動してフィルタをオフにする方法はありますか?Microsoft Accessフィルタをオフにしてレコードに残ります

私は入力時やクリック時にVBAコードをポップしようとしていましたが、何をすべきか分かりません。

答えて

0

サブフォームの主キーを使用して、レコードに戻ることができます。フォーム上のコマンドボタンを配置し、ボタンのイベントプロシージャにこのような何か:ボールパークであなたを取得する必要があります

Dim ID as Variant 

With [SubForm].Form 
    ID=!PrimaryKey.Value 
    .FilterOn = False 
    .Recordset.FindFirst "[ID]=" & ID 
End With 

を。

+0

これは本当に助けになった1トンのおかげで、私は過去数日間それに似た何かに取り組んでいました。私はDoCmd.gotoRecord、acNextと一緒にこれを使用している後続の質問だと思うが、境界線には明らかにそれ以上のレコードは存在しないが、私は正しいif文を書くことで、次のレコードは最初のステートメントに戻ります。今はID = nullであるかどうかチェックしていますが、明らかに正しいものではありません。 – imprz

+1

@imprz RecordsetオブジェクトのBOFおよびEOFプロパティを確認します。最後のレコードを過ぎている場合、または最初のレコードの前にある場合は、EOFとBOFがそれに応じて設定されます。私はしばしばレコードセットコードを、レコードが見つからない場合にキャッチするために、rec.BOFではなく、rec.EOFではなく、...でラップします。 – TheOtherTimDuncan

関連する問題