
アクセス初心者です。
◆ある請求システムをクエリ上の結合と関数だけでほぼ完成できました。誤作動もなく、正確な結果がでます。いわゆるリレーションシップをしないでの構築です。
◆構成は、請求対象者の個人IDをキーにして、請求対象日付、基本料、食事料、立替金、その他請求という比較的シンプルななものを結合させて作成しています。クエリ上で関数で日付のところで何月分の請求かを抽出するようなしくみです。
◆しかるに、完成させてしまってから「リレーションシップ」はしたほうがいいという内容のものをいくつかの資料でたまたま目にするようになりました。
◆しかるにクエリーでできてしまったシステムで現時点で不具合は全く発生せず、リレーションの必要性が理解できません。
◆というより、リレーションシップそのものを知らない段階でクエリの結合に取り組んだ者ですから、リレーションシップとは何ぞや?というレベルです。
◆そこで、今回、クエリの結合とリレーションシップの違いについてアドバイスをいただけないでしょうか?
よろしくお願いします。
No.8ベストアンサー
- 回答日時:
追記ばかりで申し訳ないです。
SQL:Structured Query Language の略。DBを操作する言語。
(詳細はネット検索などで調べてくださいね。)
クエリの実態はSQLです。
クエリをSQLビューで開いてみてください。
SELECT ・・・がそうです。
SQLで直接記述をすると、クエリのデザインビューで指定できないことも指定可能になります。
(よく利用するのか、ユニオンクエリかな?)
ご丁寧にご説明してくださり心より感謝します。
初心者(素人)はわからない用語(今回のようなSQL)に出くわすだけで心理的に”しりごみ”してしまいます。
GreatDragonさんのように、優しくご解説くださるとアクセスの本質に踏込みやすくなります。その点、何度も追記してくださったことはうれしく、感謝でした。勉強がんばります。ありがとうございました^^
No.7
- 回答日時:
追記しようと思ったら他の方から既に回答出てますね。
リレーションシップウィンドウでの設定はあくまで定義のみです。
クエリなどでその設定が自動的に使用されます。
クエリ上で自分で結合するなら、リレーションシップウインドウでの設定いは無くても構いません。
尚、設計云々はシステムの設計手法なるものがありますが、DBの部分に限っていえば
初期の段階で「テーブルの正規化」が必要でその一連の作業の中でリレーションシップが出てきます。
No.5
- 回答日時:
必要なリレーションシップについては、テーブルの設計段階で設定するのが基本中の基本です。
リレーショナルデータベースと言われる理由です。
そういうテーブル設計が先にありきです。
クエリーでもってテーブル間結合を追加できるのは、おまけみたいなものです
ですから、おまけのみに頼るのは、一種の邪道です。
土台のテーブル設計をしっかりしておけば、
・クエリーが複雑怪奇になることはありません。
・サブフォームを持つフォームの作成も簡単に行えます。
・SQL文も簡略化します。
・何よりも、データを効率良く登録できます。
Access の真価は、いかにリレーショナルデータベースとしてテーブルを設計するかにかかっています。
※Accessのヘルプの冒頭にある「データベースを作成、使用する」を読まれるといいと思います。
この回答への補足
ありがとうございます。
なるほど、「邪道」なるものを作ってしまったような気がします^^;
初心者とはいえ、自分で調べるべきないようでしょうが、「SQL文が簡略化できる」ことについてもう少し教えてくださいませんでしょうか?SQLとはどういうものかさえよくわかっていないので・・・
ごめんなさい。よろしくお願いします。
No.4
- 回答日時:
>クエリの結合とリレーションシップの違い
言葉の違いから言えば
リレーションシップ:2つのオブジェクトの関連性。関係。です。テーブルの場合一方のテーブルの列がもう一方のテーブルの列にどのようにリンクされているかを示すことを言います。
結合:2つのテーブルを共通するキーにより関係づけて新しい1つのテーブルのようにする操作です。
>クエリ上で結合するよりもリレーションシップウインドウで定義するほうが間違いないというような相違点があるか
どちらでも相違はありません。(結合に間違えが無ければですが)
リレーションシップウィンドウで設定しておけばクエリなどでそのテーブルを使うと自動結合してくれる。リレーションシップで設定していなくてもクエリ上で結合すればSQLを発行し実行できる。
予め確定しているリレーションはリレーションシップで設定しておきクエリ(SQL)上でのみ必要ならクエリ上で結合すれば良いという事です。
レコード間の整合性を取るのか取らないのか等やどのように結合するのかなど色々ありますのでその辺は勉強した方が良いと思います。
ありがとうございます。だいぶわかってきました。クエリ上の結合でも「してはいけない間違い」ではないという点では安心しました。もっと勉強してみます。ありがとうございました。
No.3
- 回答日時:
リレーションシップでの連結は既定値だと思ってください。
クエリやコンボボックス・リストボックス等を使う場合、ここの設定が初期値になります。
また、リレーションシップの場合、マスタとデータの連結で
マスタを修正・削除すればデータ側も連動して修正・削除されるといった設定も可能です。
この回答への補足
ありがとうございます。少しイメージできかけました。「既定値」について、まだすこしニュアンスがつかみかねていますが・・・。
#1さんにも補足をお願いしましたが、クエリ上で結合したものとリレーションシップの定義をすることと連動・修正・削除は別として同じものと考えても差し支えないものでしょうか?それともあくまでリレーションシップ定義をすることが原則的に必要なものでしょうか?もう少し詳細を教えてくだされば幸いです。
よろしくお願いいたします。
No.1
- 回答日時:
???
テーブルの結合をリレーションシップと言います。
リレーションシップウインドウで定義したり、クエリ内で複数テーブル結合します。
クエリ内で既に結合していると言うことは、知らないうちにリレーションシップを利用していることになります。
この回答への補足
ありがとうございます。
質問の趣旨は、リレーションシップウインドウで定義するものとクエリ内で定義するものとの違いについてです。例えばクエリ上で結合するよりもリレーションシップウインドウで定義するほうが間違いないというような相違点があるかどうか・・・
そのような質問を申し上げたかったのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- 格安スマホ・SIMフリースマホ IIJmio スマホ大特価セール 1,980円 19,819円 クレジットカードで申請された 1 2022/10/10 05:20
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
-
4
クエリ上でフィールド名が2つあるときの見分け方
Access(アクセス)
-
5
accessで、2テーブル間で複数のリレーションをしたい
Access(アクセス)
-
6
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
7
Accessのクエリでデータの入力ができません
Access(アクセス)
-
8
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
9
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
10
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
11
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
12
テーブルに表示されているものがクエリに表示されない
Access(アクセス)
-
13
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
14
Accessクエリーで両方のテーブルの全てのデータを表示することは可能ですか?
Access(アクセス)
-
15
ACCESS クエリの抽出条件で全てを抽出したい
PowerPoint(パワーポイント)
-
16
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
クエリで同一テーブルの複数回参照について
その他(Microsoft Office)
-
19
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
20
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス2000 複数のテーブ...
-
クロス集計クエリの結果をテー...
-
アクセスのクエリとDlookupはど...
-
アクセス初心者です、宜しくお...
-
accessでクエリの結果だけをリ...
-
アクセス 項目毎にデータを横...
-
アクセスで新しいレコードの追...
-
Accessのクロス集計→テーブル作...
-
ACCESSでの重複レコードの削除
-
クエリの抽出で、リストボック...
-
access テーブル作成クエリでテ...
-
ACCESSで行数指定(5万行目~8...
-
テーブル1にマクロで再クエリ...
-
Access DAOのExecuteメソッドの...
-
デザインビューにてテーブルが...
-
アクセス:クエリの結合とリレ...
-
access2010行カウント→テーブル...
-
クエリについて教えてください
-
Accessクエリの、JOINの数の限...
-
access インポート時、既にある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
accessでクエリの結果だけをリ...
-
アクセスのクエリでSplit関数は...
-
Access「レコードが削除されま...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
access テーブル作成クエリでテ...
-
access インポート時、既にある...
-
更新不可能なクエリに対して更...
-
ACCESSでテーブルの一部だけを...
-
ACCESSで行数指定(5万行目~8...
-
アクセスで新しいレコードの追...
-
Access2010「クエリが複雑すぎ...
-
Accessのクロス集計→テーブル作...
-
アクセスのクエリとDlookupはど...
-
Access DAOのExecuteメソッドの...
-
Access テーブルを検索し関連性...
おすすめ情報