アフィリエイト広告を利用しています
ファン
最新記事
写真ギャラリー
日別アーカイブ

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2019年04月05日

Accessクエリ

【ソフトバンク光】





マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


Accessクエリについてもう少し学んでいきましょう。

相当昔2016年ごろに使った例題を、持ち出します。たぶん一番最初のものですね。

クエリ101.png
上のようにテーブルが4つあります。

T_相手先一覧・T_担当者一覧・T_販売品一覧・T_販売履歴です。

上はT_相手先一覧です。

順次見ていきましょう。

クエリ102.png

これはT_担当者一覧です。

クエリ103.png

これはT_販売品一覧です。

クエリ104.png

これはT_販売履歴です。

ここからいろいろなクエリを作ってみましょう。

まずは「T_販売品一覧」と「T_販売履歴」を使って合計金額を

求めてみましょう。

通常Excelなどででは販売履歴の「数量」の後に「単価」と「合計金額」

というフィールドを作り、「合計金額」のセルには「数量×単価」の

計算式を入れて「合計金額」を表示させるという手法を使用しますね。

それでもいいのですが、いちいち単価を記入する必要がありますね。

もちろん「VLOOKUP」関数を用いて自動的に単価を入れていくことは可能です。

しかしAccessならばもっと簡単です。


パソコンの買取なら【パソコン買取アローズ】


【クエリ】

クエリ105.png
「作成」タブから「クエリデザイン」を選択し、そこから

「T_販売品一覧」と「T_販売履歴」を追加します。

2つ追加すると勝手に「商品名」のところに線がつながりましたね。

これが「リレーションシップ」です。

「リレーションシップ」とは2つのテーブルを関連付けるという

ことです。

この線のおかげで「T_販売品一覧」と「T_販売履歴」は「商品名」

というフィールドを介して関連付けられました。

クエリ106.png

今、上のように「販売日」「商品名」「相手先」「単価」「数量」と選択しました。

これは適当に並べましたが大体こんな並びでしょう。

これで通常表示にします。

クエリ107.png

上記のようになりましたね。

商品名に関連付けられて単価が自動的に入っています。


次はクエリに計算をさせて「合計金額」を求めてみましょう。

クエリ108.png

「数量」の右側のフィールド部分に「合計金額: [単価]*[数量]」と

記述しました。

「合計金額:」の部分はフィールド名を表します。

「:」の前がフィールド名で後ろが計算式です。

「[単価]*[数量]」は分かりますね。

それから「販売日」の並べ替えで「昇順」にしました。

これで通常表示にしましょう。

クエリ109.png

これで「合計金額」という新たなフィールドができ、

合計金額が表示されるようになりました。

また日付も昇順に並びました。

ここで少し難しい話を。

現在「商品名」で関連付けられて表示されています。

その結合がどういう内容の結合なのかという話です。

クエリ110.png

結合線をマウスで選択します。(少し線が太くなります)

そして右クリックすると「結合プロパティ」と「削除」という

メニューが出てきます。

「削除」は単純に結合をやめるということです。

まあここで削除して通常表示にしても大して変化はないのですが。

それよりも自動的に結合されていないフィールドを結合する方法だけ

記載しておきましょう。

何らかの都合でテーブルごとにフィールド名が違う時がありますね。

例えば上の例で商品名と製品だったりしたときは自動的に結合されません。

そのようなときどうするか?

商品名を選択し、製品までドラッグします。そうすると違うフィールド名の

場合でも結合されます。もちろん同じ内容であることが大前提です。





ちょっと話がそれました。

「結合プロパティ」の話をします。

クエリ111.png

結合プロパティを押すと上のような「結合プロパティ」が表示されます。

上の2つの枠は分かりますね。関連付けているフィールドを表しています。

問題はその下の3つのオプションボタンです。

1: 両方のテーブルの結合フィールドが同じ行だけを含める。

2: T_販売履歴の全レコードとT_販売品一覧の同じ結合フィールド

   だけを含める。

3: T_販売品一覧の全レコードとT_販売履歴の同じ結合フィールドの

   レコードだけを含める。

なんかややこしい表現ですね!!

今回の例ではどこを選択しても同じ結果が得られます。

今後皆さんがいろいろなクエリを作っていくと、どこかでこの設定を

触らなければならない場面が出てくると思います。

通常は1で問題なのですが、時には2とか3を選択しなければうまく

機能しない時もあります。進めていくうちに手ごろな例が出てくれば紹介しましょう。

2と3も文章をよく読めば何となく分かると思います。

1は「結合されているテーブルだけ表示します。」という意味ですね。

2は「T_販売履歴の全レコードを表示して、結合されているところは

表示します」という意味です。3は2と逆ですね。

とりあえずリレーションシップを作るときはこのような注意が必要と

いうことを覚えておいてください。

またクエリからフォームを作成する場合も、リレーションシップによって

データを書き換えられる場合と書き換えられない場合が発生します。

そのあたりも追々学んでいきましょう。

またテーブルを設計する際に、リレーションシップの事を念頭に入れて、

重複するような項目は入れないように設計しましょう。

見逃し配信




最新コメント
プロフィール
さんの画像

60過ぎのおっちゃんです。手探りでブログを立ち上げました。至らない点が多々あると思いますがご容赦ください。
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。