
Private Sub 検索_Click()
Dim strFilter1 As String
Dim strFilter2 As String
Dim strFilter3 As String
strFilter1 = "学校名 = '" & 学校名1 & "'"
strFilter2 = "学校区分 = '" & 学校区分1 & "'"
strFilter3 = "キャンパス = '" & キャンパス1 & "'"
Me.Filter = strFilter1 & " or " & strFilter2 & " or " & strFilter3
Me.FilterOn = True
End Sub
(1)学校名・(2)学校区分・(3)キャンパスと3つのテキストボックスがあり
3つの抽出条件を満たすレコードをフォームに表示させたいのですが
学校名を仮に早稲田大学といれ絞れるのですが次に学校区分を大学
と入れるとほか大学も抽出されてしまいます。
学校名を抽出させたら、その範囲で学校区分の大学を抽出させたいのですが
どのようにすればいいのでしょうか?
(1)のみの抽出の場合や(1)と(2)のみの
場合があるのでandの完全一致ではありません。
No.6
- 回答日時:
hatena さん お疲れのようですね。
>> 何もイミディエイトウィンドウには記載はありませんでした。。
> If 学校名1 <> "" Then
Null チェック が必要かと。 ^^;
No.5
- 回答日時:
> 何もイミディエイトウィンドウには記載はありませんでした。
。それでは、下記の手順を試してください。
フォームをデザインビューで開き、「検索」コマンドボタンの「クリック時」プロパティに、[イベント プロシージャ] と設定されている確認。
設定されていたら、右端のビルドボタンをクリックして、VBAウィンドウが開き、Private Sub 検索_Click() のコードが表示されるか確認。
表示されたら、下記のように MsgBox のコードを挿入。
Private Sub 検索_Click()
Dim strFilter As String
MsgBox "検索_Click!"
If 学校名1 <> "" Then
strFilter = " And 学校名 = '" & 学校名1 & "'"
End if
If 学校区分1 <> "" Then
strFilter = strFilter & " And 学校区分 = '" & 学校区分1 & "'"
End If
If キャンパス <> "" Then
strFilter = strFilter & " And キャンパス = '" & キャンパス1 & "'"
End If
MsgBox "strFilter='" & strFilter & "'"
Me.Filter = Mid(strFilter1, 6)
Me.FilterOn = (strFilter <> "")
End Sub
フォームビューにして、学校名1、学校区分1、キャンパス1 に何か入力して、
検索ボタンをクリック。
MsgBox 2回表示されるか確認。
表示されるなら、表示された内容を押して得てください。
<フォームをデザインビューで開き、「検索」コマンドボタンの「クリック時」プロパティに、[イベント プロシージャ] と設定されている確認。
<設定されていたら、右端のビルドボタンをクリックして、VBAウィンドウが開き、Private Sub 検索_Click() のコードが表示されるか確認。
↑こちら確認済みです。詳細な説明ありがとうございます。
そして標記のコードを貼り付け実行させ、2回ほどメッセージがでたので
2回クリックしましたが、実行結果はテキストボックスに入れた内容で抽出されず
何も変化はありませんでした。。
m3_maki さんもNo7で仰られているように実行には問題ないみたいですね。。
う。。何がいけないのでしょうか。。
No.3
- 回答日時:
前回の回答のコードにタイプミスがありましたので、下記に修正してください。
Private Sub 検索_Click()
Dim strFilter As String
If 学校名1 <> "" Then
strFilter = " And 学校名 = '" & 学校名1 & "'"
End if
If 学校区分1 <> "" Then
strFilter = strFilter & " And 学校区分 = '" & 学校区分1 & "'"
End If
If キャンパス <> "" Then
strFilter = strFilter & " And キャンパス = '" & キャンパス1 & "'"
End If
Me.Filter = Mid(strFilter1, 6)
Me.FilterOn = (strFilter <> "")
End Sub
これで、うまくフィルタが掛からない場合は、上記の、End Sub の前に、
Debug.Print Me.Filter
というデバック用コードを挿入して実行してみてください。
検索ボタンをクリックした後、Ctrl+G でイミディエイトウィンドウを表示させ、そこに表示された文字列をコピーしてここに貼り付けてもらえますか。
hatena1989さん、返信ありがとうございます。
とりあえず、再度実行してみたのですが動きません。
いわれた通りデバックからコードを貼り付けてみました。
Private Sub 検索_Click()
Dim strFilter As String
If 学校名1 <> "" Then
strFilter = " And 学校名 = '" & 学校名1 & "'"
End If
If 学校区分1 <> "" Then
strFilter = strFilter & " And 学校区分 = '" & 学校区分1 & "'"
End If
If キャンパス <> "" Then
strFilter = strFilter & " And キャンパス = '" & キャンパス1 & "'"
End If
Me.Filter = Mid(strFilter1, 6)
Me.FilterOn = (strFilter <> "")
'Me.FilterOn = True
Debug.Print Me.Filter
End Sub
No.2
- 回答日時:
> (1)のみの抽出の場合や(1)と(2)のみの
> 場合があるのでandの完全一致ではありません。
Or条件でもないですね。
And 条件の場合分けでしょうね。
下記のコードでいかがですか。
Private Sub 検索_Click()
Dim strFilter As String
If 学校名1 <> "" Then
strFilter = " And 学校名 = '" & 学校名1 & "'"Eend if
If 学校区分1 <> "" Then
strFilter = strFilter & " And 学校区分 = '" & 学校区分1 & "'"
End If
If キャンパス <> "" Then
strFilter = strFilter & " And キャンパス = '" & キャンパス1 & "'"
End If
Me.Filter = Mid(strFilter1,5)
Me.FilterOn = (strFilter <> "")
End Sub
hatena1989 さん
ご回答ありがとうございます。
プログラムの内容は大まかには理解できたのですが
ボタンをクリックしても何も抽出されません。

No.1
- 回答日時:
要求する仕様が良く分からないのです。
「早稲田」or「大学」で、他の大学が出てくるのは当然だと思いますし、それが「学校名を抽出させたら、その範囲で学校区分の大学を抽出させたい」という仕様ではないのですか?
なんで「大学」という範囲のレコードを抽出するのに、「早稲田大学」も一緒に抽出条件する場合があるのかはよく分かりませんが。
また、厳密に言うと「その範囲で学校区分の大学」もよく意味が分かりません。こんな掲示板に書いているのですから、別にきっちりかっちり書けといっているわけではありません。ただ、要求する動作がきちんと定義されていないのではないか、という印象をもちました。
フィルターの使い方という話ではなくて、そもそもデータベースの設計、というかデータの整理の仕方、運用の仕方に問題があるのではないですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
複数条件検索について
Access(アクセス)
-
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
access マクロでのフィルタの解除の方法
Access(アクセス)
-
-
4
ACCESSのフォーム上で複数検索したい項目がある場合どうすればいいですか?
Access(アクセス)
-
5
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
6
Accessフォームでの複数条件検索
Excel(エクセル)
-
7
accessvba 複数条件でFilterをしたい
Access(アクセス)
-
8
新規レコード行を非表示にしたい
Access(アクセス)
-
9
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
10
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
11
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
12
ACCESS チェックしたものを 印刷したい
Access(アクセス)
-
13
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
14
アクセスのテキストボックスでOR条件の設定をしたい
Access(アクセス)
-
15
Accessのコンボボックスでリストが選択できない
Word(ワード)
-
16
Me.FilterOn = True は先でも後で
Access(アクセス)
-
17
Returnに対するGoSubがありません
Access(アクセス)
-
18
Access 複数条件検索の設定が上手く行きません
Access(アクセス)
-
19
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
学校から1人1台貸し出されてい...
-
ふと思ったのですが、学校のiPa...
-
学校に慣れなくて、学校でもな...
-
卒業アルバムの再発行
-
スマホを学校で使うpcのアプリ...
-
去年学校で配られた卒業証明書...
-
学校のパソコンで、音楽を聴く...
-
引越しによる転校についての質...
-
高校3年生の娘についてです。 1...
-
高2の息子を持つ母親です。 息...
-
実習生です。友達に電話で実習...
-
学校の近くで友達とタバコを吸...
-
高二の女子です 昨日こっそり開...
-
無期停学って言われたけど1週間...
-
息子は私立高校一年生です。学...
-
元々私の事をいじめてた子が停...
-
今日、空いていた教室で彼女と...
-
バイトの6時間前にシコるのは流...
-
どこまでが特別指導(謹慎)?
-
公立高校の無期限謹慎とは大体...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
学校に慣れなくて、学校でもな...
-
高2です。 iPad ProとノートPC...
-
専門学校を辞めるべきか続ける...
-
中1男子です。 家で自分用のiPa...
-
「学校はどこですか。」と 「...
-
学校から1人1台貸し出されてい...
-
学校のパソコンでTwitterなどロ...
-
家のiPhoneでWordをつくりそれ...
-
学校のパソコンの監視について...
-
学校から監視されているiPadで...
-
学校で買わされたiPadについて...
-
卒業アルバムの再発行
-
学校のパソコンで検索履歴について
-
ふと思ったのですが、学校のiPa...
-
【学校法人須磨学園】学校法人...
-
学校のPCにUSBメモリを挿したら...
-
「学校に行く」と「学校へ行く...
-
学校に監視されているiPadって...
-
「今行ってる」の是非
-
「普通」
おすすめ情報