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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
- 教育学 公立の小・中学校が、学校ごとに教育方針が違うのは学区の住民に対する差別ではないのですか? 義務教育な 2 2022/11/12 23:14
- 教育学 公立の小・中学校が、学校ごとに教育方針が違うのは学区の住民に対する差別ではないのですか? 義務教育な 4 2022/11/13 17:34
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
ACCESS フォームで抽出したデータのみをレポートで表示したい
Access(アクセス)
-
アクセスで特定のレコードのみのレポートを印刷したいのですが。
Access(アクセス)
-
-
4
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
5
複数条件検索について
Access(アクセス)
-
6
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
7
Access 複数条件検索の設定が上手く行きません
Access(アクセス)
-
8
サブフォームのあるフォームからレポートを作成し、印刷しようとすると、サブフォームにあるデータ量分印刷
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
学校から監視されているiPadで...
-
ネッ友
-
至急です。ラブホに学校帰りに...
-
どんな学校にしたらいいかわか...
-
中1男子です。 家で自分用のiPa...
-
学校のパソコンでTwitterなどロ...
-
学校から貸し出されているPCで...
-
学校なんてろくなもんじゃ無い...
-
学校に監視されているiPadって...
-
有機化学の質問です。 学校では...
-
どうして、学校と呼ぶの?
-
学校のPCにUSBメモリを挿したら...
-
学校で使われているコピー用紙...
-
学校のパソコンの監視について...
-
アクセスでのテキストボックス...
-
学校のパソコンで検索履歴について
-
学校の近くで友達とタバコを吸...
-
激辛ポテトチップスで高校生が...
-
高二の女子です 昨日こっそり開...
-
バイトの6時間前にシコるのは流...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
学校のパソコンでTwitterなどロ...
-
ふと思ったのですが、学校のiPa...
-
「学校はどこですか。」と 「...
-
病院に学校の体操着で行くのは...
-
学校のPCにUSBメモリを挿したら...
-
学校のパソコンで検索履歴について
-
子役っていいの?
-
学校から監視されているiPadで...
-
スマホを学校で使うpcのアプリ...
-
「学校に行く」と「学校へ行く...
-
家のiPhoneでWordをつくりそれ...
-
中1男子です。 家で自分用のiPa...
-
学校のパソコンの監視について...
-
引越しによる転校についての質...
-
学校に監視されているiPadって...
-
卒業アルバムの再発行
-
学校専売教材を買う方法ってあ...
-
スクールカーストとか気にして...
-
学校のチャイムの音が大きくて...
-
学生のときはスクールカースト...
おすすめ情報