質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

736閲覧

----------

退会済みユーザー

退会済みユーザー

総合スコア0

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/05/19 23:49

編集2021/06/30 12:35

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2021/05/20 00:21

提示のデータ例で、"[本店名] = B店"で検索したとき、 2件のうち、どちらかの支店の1件のみを表示したいということでしょうか。その場合、どちらを選択するかの基準はなんでしょうか。
YT0014

2021/05/20 05:55

「本店名で検索する」とは、本店名のみ指定し、支店名を指定しない、ということですか?それとも、支店名の指定の有無に関わらず、本店名が指定された場合、ということでしょうか? 「重複する本店を出力したくない」というのは、該当支店数分の行の表示において、2行目以降の本店(本店名と住所など?)の表示を、空白にしたいということですか?それとも、(なんらかのルールで定めた)1行のみを表示したいということですか? など、仕様の説明が不足しておりますので、質問文を編集して、正確な仕様をご提示ください。
退会済みユーザー

退会済みユーザー

2021/05/20 09:37

ご指摘ありがとうございます。 hatena19様 >提示のデータ例で、"[本店名] = B店"で検索したとき、 2件のうち、どちらかの支店の1件のみを表示したいということでしょうか。その場合、どちらを選択するかの基準はなんでしょうか。 説明不備で申し訳ありません。 まず、上記の回答には、いいえとなります。 本店名のみで検索する場合は、支店名は表示させないようにしたいです。 本店で検索した場合は、条件に該当した店舗に支店があるのかないのか、区別がつかなくても問題ありません。 YT0014様 >「本店名で検索する」とは、本店名のみ指定し、支店名を指定しない、ということですか?それとも、支店名の指定の有無に関わらず、本店名が指定された場合、ということでしょうか? 「重複する本店を出力したくない」というのは、該当支店数分の行の表示において、2行目以降の本店(本店名と住所など?)の表示を、空白にしたいということですか?それとも、(なんらかのルールで定めた)1行のみを表示したいということですか? など、仕様の説明が不足しておりますので、質問文を編集して、正確な仕様をご提示ください。 説明不備で申し訳ありません。 >「本店名で検索する」とは、本店名のみ指定し、支店名を指定しない、ということですか? はい、そのとおりです。 >、(なんらかのルールで定めた)1行のみを表示したいということですか? こちらになります。 また、支店の表示ルールは、すべて空欄として出力させたいと考えています。
guest

回答2

0

ベストアンサー

検索結果フォームを開く時に、レコードソースプロパティを変更するがいいでしょう。

Form.RecordSource プロパティ (Access) | Microsoft Docs

検索フォームの検索ボタンのクリック時のイベントプロシージャ

vba

1Private Sub 検索_Click() 2 Dim strFilter As String 3 4 If Me.本店名 <> "" Then 5 StrFilter = " And [本店名]='" & Me.本店名 & "'" 6 End If 7 If Me.支店名 <> "" Then 8 StrFilter = StrFilter & " And [支店名]='" & Me.支店名 & "'" 9 End If 10 11 If strFilter <> "" Then 12 DoCmd.OpenForm "検索クエリ", , , Mid(strFilter, 6) 13 Else 14 Msgbox "本店名または支店名を入力してください。" 15 End If 16 17End Sub

「検索クエリ」フォームの開く時のイベントプロシージャ

vba

1Private Sub Form_Open(Cancel As Integer) 2 If Me.Filter Like "*[本店名]=*" And Not Me.Filter Like "*[支店名]=*" Then 3 Me.RecordSource = "本店TBL" 4 '支店TBLのフィールドと連結したテキストボックスはエラーになるので 5 '連結を解除する。 6 Me.支店名.ControlSource = "" 7 Me.支店住所.ControlSource = "" 8 ・・・ 9 End If 10End Sub

投稿2021/05/20 17:04

hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/30 12:35 編集

------------------------------
guest

0

DoCmd.OpenForm の後で、Recordsetを切り替えれば良いかと。

Recordset プロパティ (Access)
丁度、上記の解説欄のサンプルコードが、動的にRecordsetを設定するものなのです。

本店検索用のクエリを作成して、本店検索時は、作成したクエリに。
本支店検索の場合は、現在使用しているクエリなどを設定すれば、実現できます。

投稿2021/05/20 10:04

YT0014

総合スコア1750

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/30 12:35 編集

------------------------------
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問