外出自粛中でも楽しく過ごす!QAまとめ>>

アクセス2000で、サンプルを見ながらVBAをみようみまねで書いている超初心者です(難しいことは理解できていません)。次のようなところで行き詰っています。ヘルプお願いします。

一つのフォームに、(1)コンボボックス2つで、2段階の絞り込みをするクエリ(全体から「種類」フィールドのAを抽出し、さらに「名前」フィールドからBに絞り込む) と、(2)オプショングループのフレームの中で五十音で検索するトグルボタン(「かな」フィールドからあ行、か行等を抽出) のふたつのフィルタを設置しています。

コンボボックスのほうには、絞り込みの解除のボタン(ここでは「再表示」とします)を設置しており、クリック時のイベントに

Private Sub コマンド1_click()
me.コンボ1=null
me.コンボ2=null
DoCmd.Requery
End Sub

と記述し、「再表示」ボタンを押すことで、何度もやり直しができています。

しかし、五十音検索を一度でも行うと、その後はコンボボックスの絞り込みが動かなくなってしまうのです。
そこで、こちらにも「全表示」ボタンをつくって、以下のような記述をしてみたのですが、いずれもコンボボックスによる絞り込みを復活させることができないでいます。どこが足りないのかわかりません。

1)
Private Sub コマンド2_click()
me.フレーム1=null
me.フレーム2=null
DoCmd.Requery
End Sub

これでトグルの選択は解除されますが、コンボボックスは動きません。よって3行目以降が間違っていると思い、

2)上記の3行目以降を
DoCmd.ShowAllRecords や Me.FilterOn=false  など、またそれらとReQueryなどを組み合わせてみたり、

3)コンボボックスの方に1)や2)のような記述を追加してみたりと、いろいろトライしていますが、どうしてもコンボボックスの動作が復活しないのです。

いったんフォームを閉じるとまたできるようになるのですが・・・どうすればよいか、ご教示をお願いいたします。


ps.VBAのお作法はほとんどわかっていません。なるべくわかりやすくお願いいたします。
  ちなみに、MSのサイトで[ACC2000]フィルタが設定されたフォームで2回目以降のフィルタが実行されない というヘルプは参照したのですが、意味が分かりませんでした(泣)

 また、なぜこの時代にアクセス2000なのか、ですが、いまだに会社のバージョンがこれなのです(苦笑)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

Access2000 は持ち合わせておりませんが


両方の

前略・・
me.コンボ2=null
Me.filter = ""
Me.filterOn = false
'もしくは
docmd.RunCommand acCmdRemoveFilterSort
'どちらかの追加で何とかなりませんか?
Docmd.ShowAllRecords '念のためこれも追加
DoCmd.Requery
・・後略
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
試してみたのですが、特に変化はありませんでした。

ちなみに、それぞれどういう意味や働きなのかご教示いただけないでしょうか。VBAを自分で考えるどころか、理解するところまでもいっていませんので、今後のヒントにさせていただければと思っております。

お礼日時:2013/12/27 23:43

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング