Microsoft Access 掲示板

いずれかの条件が当てはまる場合にサブフォームに表示

10 コメント
views
4 フォロー

初心者になります。
テーブルにコードをいれるフィールドを5つ作成しました。これを基にフォームにサブフォームを作成し5つのフィールドいずれかのコードと合致した場合にサブフォームに表示させるようにしたいと考えています。
サブフォームの親リンクと子リンクに各々対応したフィールド名を入れたのですが表示されませんでした。
どのようにすればよいかご指導頂けないでしょうか。よろしくお願い致します。

ACCESS
作成: 2024/05/17 (金) 00:49:22
通報 ...
1

表現があいないなので、正確な状況が把握できません。

サブフォームのレコードソースのテーブルに「コードをいれるフィールドが5つ」あるということでしょうか。
「5つのフィールドいずれかのコードと合致した場合」の合致する値は、メインフォームのテキストボックスに入力するということでしょうか。
メインフォームは連結フォームでしょうか。値を入力するテキストボックスは連結コントロールでしょうか。

もう少し情報を整理して、正確かつ詳細に説明していただけませんか。

下記のような情報は欲しいです。

テーブル名
フィールド名(データ型)
データ例

メインフォームのレコードソース
サブフォームのレコードソース

2
りんご 2024/05/17 (金) 12:51:35 修正 935bc@0e907

 ブロックプログラミングみたいな事をやりたいのであれば、詳しくないけれど、kintoneやwagbyあたりを調べてみるのはどうかしら。Excelで楽曲作成演奏をやろうとするなら、初音ミクみたいなものを提案しますよね?
 ところで、MsAccessを選んだ時点で当たり前のルール(主キー、正規化)を受け入れなければいけません。例えば、運動場でサッカーやろうぜ、でも、足技禁止・手技のみOKルールな!サッカーボール以外もなんでもOKな!、みたいに、何でもありを許したら、それはもはや意味不明な質問です。

追記:コードとは、プログラムコードじゃなくて、商品コードのようなものだったのかしら?

3

りんごさん
質問者さんは初心者といわれています。
初心者にそのような回答をしても、もはや意味不明の回答だと思います。

4

不明な点は推測で補って、下記のようだと仮定すると、

サブフォームのレコードソースは「コードをいれるフィールドが5つあるテーブル」
テーブル名 Tbl1
5つのフィールド名 Code1, Code2, Code3, Code4, Code5

メインフォームにコードを入力するテキストボックスが一つある。
メインフォーム名 MF1
テキストボックス名 txt1

このテキストボックスのコードがCode1~Code5のいずれかと一致しするレコードを抽出する。

だとしたら、
Tbl1からクエリを作成して、デザインビューで下記のように設定

フィールド:F1F2F3F4F5
テーブル:Tbl1Tbl1Tbl1Tbl1Tbl1
抽出条件:Forms!FM1.txt1
または:Forms!FM1.txt1
Forms!FM1.txt1
Forms!FM1.txt1
Forms!FM1.txt1

今回の条件はOR条件ですので、抽出条件は上記のように行をかえて設定します。
ちなみに、親リンクと子リンクの設定ではAND条件になりますので、今回の要件では使えません。

このクエリをサブフォームのレコードソースにする。

txtコードにコードを入力したら、サブフォームを再クエリする。


上記の前提では、テーブルの正規化ができいません。
場合によっては、テーブル設計から見直すべき事案かも知れません。

テーブル情報などの詳細が現時点では不明なので、その辺がはきっりしてから、アドバイスします。

5
ACCESS 2024/05/19 (日) 22:09:04 e3bba@fa11b

hatena様
回答が遅くなり申し訳ありません。
また、説明不足もあり大変失礼いたしました。
今回の件を再度ご説明させていただきます。
今回の件は、商品の見積もりのデータベース化を目的としています。メインフォームにて商品を表示させたときにサブフォームに同一商品見積一覧、もう一つのサブフォームに同等品見積一覧を表示させようとしています。
テーブルは商品マスタと見積の2つになります。
商品マスタのフィールドには、日付(日付/時刻型)、品目(短いテキスト)、メーカー(短いテキスト)、商品名(短いテキスト)、商品コード(短いテキスト)があります。
見積のフィールドには、日付(日付/時刻型)、商品コード(短いテキスト)、同等品商品コード1(短いテキスト)、同等品商品コード2(短いテキスト)、同等品商品コード3(短いテキスト)、同等品商品コード4(短いテキスト)、同等品商品コード5(短いテキスト)、価格(通貨型)があります。
なお、商品マスタの商品コードと見積の商品コードをリレーションシップしてあります。
メインフォームはフォームデザインにて商品マスタのフィールドと商品見積一覧のサブフォーム、同等品見積一覧のサブフォームを表示させてあります。
メインフォームのレコードソースはテーブルの商品マスタになります。
商品見積一覧のサブフォームのソースオブジェクトはテーブルの見積でリンク親フィールドならびにリンク子フィールドは商品コードにしてあります。
同等品見積一覧のサブフォームのソースオブジェクトはテーブルの見積でリンク親フィールドは商品コード;商品コード;商品コード;商品コード;商品コード、リンク子フィールドには、同等品商品コード1;同等品商品コード2;同等品商品コード3;同等品商品コード4;同等品商品コード5にしてありましたが同等品は表示されませんでした。
拙い説明ではありますが以上になります。また、不足している場合があるようでしたらご面倒をおかけしますがご指摘をよろしくお願いいたします。

6
ACCESS 2024/05/19 (日) 22:23:15 e3bba@fa11b

りんご様
ご指導ありがとうございます。
hatena様がおっしゃる通り初心者であまりわかっていません。これから少しずつではありますが勉強させていただきます。
またご助言をいただければ幸いです。

7
りんご 2024/05/20 (月) 00:01:45 修正 935bc@0e907

>> 6
 SQLのようなコードではなく、商品コードの事だったんですね。理解不足でしたね、すみません。
>> 5
 
例、見積テーブル

日付商品コード同等品商品コード1省略…2省略…3省略…4省略…5価格
XXXX/XX/XX9990010020030040051,000

 やりたい事は、見積テーブルの商品コードを開いたら、対応する同等品商品コード1〜5がサブフォームに表示される、みたいな感じかしら?

8
ACCESS 2024/05/20 (月) 10:44:09 f5ab3@ae569

りんご様
回答ありがとうございます。
ご指摘のとおり同等品商品コード1〜5いずれかに商品コードが対応した場合にサブフォームに表示されるようにしたいと考えております。
お手数ですがよろしくお願いいたします。

9
りんご 2024/05/20 (月) 19:00:32 935bc@0e907 >> 8

同等品商品コード1〜5いずれかに商品コードが対応した場合に

 商品マスタの商品コード999(メインフォーム)と見積の商品コード999(サブフォーム)を親リンク子リンクすれば、>> 7に近い形になると思いますが、それじゃダメかしら?もしダメならば、どうしたいのかを簡易図(例、スクショ)と文章で説明していただけますか?

10
ACCESS 2024/05/23 (木) 00:46:58 f5ab3@b3762

Hatena様
りんご様
返信がいつも遅く申し訳ありません。
hatena様のORでのサブフォーム表記とりんご様の親リンク子リンクにする方法をともに実行したところ当初計画していたものよりもいいものができました。
ありがとうございます。
今回は説明不足など不手際があり大変失礼いたしました。またご相談させていただければ幸いです。