🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Access

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

Q&A

解決済

2回答

3193閲覧

Access クエリで空白になった列を左詰め

mapula

総合スコア1

Access

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

0グッド

0クリップ

投稿2020/12/03 05:02

Accessのクエリを走らせることにより、データがなくなった空白のフィールドを、削除・非表示させ左詰めにしたいのですがそのようなことは可能でしょうか?

例えば

メニュー  牛肉 豚肉 じゃがいも 人参 玉ねぎ ・・・・
カレー   500 200 100 100
肉じゃが  200 200 200
ポトフ      500 100 100 100


といった、材料のフィールドがあって、メニューごとのデータがあり、
そこから特定のメニューを抽出して、使用する材料を集計するクエリを作った際
使わない材料が出てきたときに、その材料の列を表示させないクエリが作れるか調べています。

ご教授いただけますでしょうか。よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

使わない材料が出てきたときに、その材料の列を表示させない

表示する材料が固定(若しくはマスタがある)で、値を表示しないという事なら、クロス集計クエリーで可能です。

投稿2020/12/03 06:43

編集2020/12/03 06:47
sazi

総合スコア25327

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

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

mapula

2020/12/03 11:35

ありがとうございました。クロス集計クエリなら確かにきれいに集計されました。
guest

0

まずはテーブルの正規化をしましょう。
現状のままではデータベースとして使い物になりません。

下記のような2つのテーブルに分割します。

メニューマスター

メニューIDメニュー名
1カレー
2肉じゃが
3ポトフ

材料マスター

材料ID材料名
1牛肉
2豚肉
3じゃがいも
4人参
5玉ねぎ

メニュー材料

メニューID材料ID
12500
13200
14100
15100
21200
23200
25200
32500
33100
34100
35100

なぜ、そんなことする必要があるのか疑問に思ったら、
「テーブル 正規化」でWEB検索すると解説ページが見つかりますのでそれを読んでください。

そのうえでクエリの上記3つのテーブルを結合します。そのクエリからクロス集計クエリを作成すればご希望のレイアウトになります。

現状のレイアウトのまましたいとういことなら、AccessではなくExcelでやった方がよほど効率的です。

投稿2020/12/03 05:21

hatena19

総合スコア34073

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

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

mapula

2020/12/03 11:37

すぐに回答いただきありがとうございました。テーブルの正規化はテーブル作成するうえで重要な要素なんだなとわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問