
No.2ベストアンサー
- 回答日時:
リレーションシップと結合とは全く異なるものです
リレーションシップはテーブルの関係を定義するもの
クエリの結合は複数のレコードセット(テーブルと限りませんクエリでもOK)から
どのようにデータを引き出してくるかの結びつきを定義します
SQLでいえばリレーションシップはテーブル定義のREFERENCES句で定義され
結合はSELECTステートメントのJOIN操作になります
オートナンバーはレコードの入力順を表すユニークな(重複の無い)
番号を振ることが目的のものですから抜けが生じてもなんら差し支えの無いものです
連続していないと気持ちが悪く感じるのは人間だけで
コンピュータにとっては何の問題もありません
どうしても埋めたければ追加クエリで埋めることができます
ただしその操作でユニーク性が失われては元も子もありませんけどね
この回答への補足
定形の物の集まり(社名テーブル)があり、それを必要としている複数のテーブルがそのデータを参照する場合などはリレーションシップし、複数から参照されるが決算期などの個々の企業によって時期が異なるもはクエリの結合をしようする?(テーブル定義のリレーションシップを使用しない・・・)
と言う考えでよいのでしょうか?
分かり難くてすみません。
参考:http://up.mugitya.com/img/Lv.1_up43438.jpg.html
(時間帯によって見れない場合があります。)
決算期データが三年分ありそれぞれ項目があるのですが
店マスタに入力してもいいのですがその場合、一つのテーブルデータが
膨大になってしまうので分割してあります。
上の画像で決算期はクエリの結合で問題ないですよね?
No.9
- 回答日時:
また気を悪くされるかも分かりませんが
このまま進めるには無理がありますね
そちらの基礎知識が無さ過ぎます
せめて入門書の1冊ぐらい最後まで読んでから質問されたほうがいいですね
質問ボードだから何でも聞いていいというものではありませんよ
どの入門書にも書いてあるようなことは本を買って勉強してください
本を読むに当たっての注意ですが
どの本でも最初のほうにテーブルの作り方が書いてあります
初心者はこの辺を軽く流してしまいがちですが
非常に重要な点ですから、十分注意して読んでください
この回答への補足
総合編の解説書を全て読みました。
どの辺が理解できていないか良く分りませんが、
暇な時にもう一度読み直してみます。
質問ボードだから分らない事を質問したのですが
ここで質問した内容を理解している時間がないので諦めます。
>また気を悪くされるかも分かりませんが
全然分ってないようですね。
残念です。
No.8
- 回答日時:
>年後とにデータを蓄積していく場合、年が変わるに連動してフォームの参照位置が変更、
>その年度用のレコードの追加されるような機能はあるのでしょうか?
こういうふうに考えずに最近3年分を表示とすれば
年度が変われば自動的に表示される範囲も替わります
>前年比を出すために18/11月の売上を参照する
クエリですね、それもかなり難しいクエリを組む必要があります
>(以下がテーブルの一部です。)
>ID番号 決算期 総売上 売上 利益 前年比 利益率
前年比や利益率はテーブルには持ちません
計算で求まるものはクエリ等で求めます
この回答への補足
>こういうふうに考えずに最近3年分を表示とすれば
>年度が変われば自動的に表示される範囲も替わります
クエリの抽出条件でしょうか?
そのような事が可能なのですか?
>クエリですね、それもかなり難しいクエリを組む必要があります
どう言う事でしょうか?
>前年比や利益率はテーブルには持ちません
>計算で求まるものはクエリ等で求めます
テーブルに計算したデータを保持しないのですか・・・
知りませんでした^^;
No.7
- 回答日時:
>言葉使いに少し気を使われたほうがいいかもしれません。
お気を悪くされたのなら謝ります
何とかしてあげようという気持ちで、提示されたリレーションシップウィンドウを見たとき
正直言ってこれは大変だぞという印象を強く受けたので
それが言葉の端はしに出たのでしょう、修行が足りないのかな?
でもあれを保存しておいて何ヶ月か先に見てみればあなたにも私の気持ちが分かるのじゃないかな
業者に頼むとしても仕様はあなたが作成しなければなりません
全く知らないよりは知識があったほうが業者との打ち合わせもスムーズに行きますから
勉強は続けてくださいね
業者に頼んだときの費用についてはWEB上にも無料で見積をしてくれるようなところが
いくつかあるようですからそういうのを利用するのもいいかも
この回答への補足
先日は書きませんでしたが質問の核心を書かせていただきます。
問題解決の方法は分かったのですが・・・これは聞いた方がいいと思いまして、
新たなスレッドを立てた方が良いのかも知れませんが掲示板を汚すのも失礼かと思いまして・・。
手間をかけて申し訳ないです。
年後とにデータを蓄積していく場合、年が変わるに連動してフォームの参照位置が変更、
その年度用のレコードの追加されるような機能はあるのでしょうか?
総売上 売上 利益 前年比 利益率
17年度1500 530 480
18年度2000 550 500
19年度1000 600 550
年度が替わると・・・
総売上 売上 利益 前年比 利益率
18年度2000 550 500
19年度 前年度の表示が上にあがり、20年を追加
20年度←データの蓄積先を新たに追加されたレコードに変更
-------
(上は入力フォームの一部です。)
(以下がテーブルの一部です。)
ID番号 決算期 総売上 売上 利益 前年比 利益率
12 17/11
12 18/11 2000 550 500
12 19/11 1000 600 500
12 20/11 1200 610 550 ←新たに追加されたレコードに20年のデータが蓄積される
12 17/12
11 18/12 ・・・・
11 19/12
(集計の時期は19年1月~12月ではなく、19年7月~20年6月です。)
(実際に使用するのは4年分です。それ以降のものは使用していません。)
計算方法について
関数だとおもいますが、例えば今年(19/11)のデータを入力した場合、前年比を出すために18/11月の売上を参照する
と言う事は出来ると思うのですがどうでしょか?。
(フォームから入力、新たな年度のレコードにデータが追加される。同じIDの去年の売上データを参照、今年の前年比を出す)
参考:http://up.mugitya.com/img/Lv.1_up43805.jpg
年が開けるごとに自動追加されるような機能が無いと、手動で直さなければならないですよね・・・。
今年、去年、去々年と分割してもいいのですが、一年立つと結局のところ直さないとだめなんですよね。今年の去年は、去年の今年。
お気持ちはすごく分かります。
熟練者から見ると初心者の発言や勘違いは「はぁ?」と思われるのはしごく当然の事だと思います。
わざわざお気遣いありがとうございます。
No.6
- 回答日時:
>外部委託はどれほどかかるのでしょうか
正直に申し上げてピンキリと言わざるを得ません。
業者の規模にもよりますから。
あくまで参考ですが、一人日(一人で一日分の仕事)で単価5万だと安い方です。高いと単価10万くらいします。
No.5
- 回答日時:
回答1の者です。
参考として受け取ってください。
おそらくシステム構築を担当されている方でも、経験のある方でもないように見受けられます。
今の状態ではどれだけの時間を要するか大変気になります。
ここは、外部委託をされた方が宜しいと思いますが、いかがでしょうか。
多少の費用はかかっても、あなた方が費やす時間を他のお仕事にまわすことで全くの損にはならないと思います。
この回答への補足
同意見です。
私は全くの素人で・・・といいますか今は単なるバイト生です。
一応一月に正社員になる予定です。
Accessなんて使ったこともなく、データベースなんてやってこともなく
高校時代にExcelとWordの基礎をちょっとやった程度の者です。
社長はパソコンに関して殆ど知識がなく、メールとHP観覧方法しか分からないような人です。(ファイルのコピーの仕方すら知りませんでした。)
二日間、16時間を使ってAccessの解説書を読み
同じく二日間で今あるデータベースの構造を理解したところです。
本来の話と少しはずれますが、外部委託はどれほどかかるのでしょうか?
No.4
- 回答日時:
>同じデータを参照する複数のデータがある場合、テーブルを分ける。
>これをすることで作業の軽減、データ量の軽減ができる。
>このような理解で制作を行っていたのですが、
>他に参照しないのであればフィールド数が膨大になろうが、
>一つのテーブルにまとめるのが普通なのですね。
テーブルの分割は正規化規則に則って分割します
フィールドの数ではないですね
リレーショナルデータベースではフィールド数はあまり多くならず
むしろテーブル数が多くなるという傾向があります
フィールド数が多いというのは正規化が出来ていない可能性大ですね
ひとつのテーブルにはひとつの事象あるいはものに関するものだけを入れるようにするのですよ
それに前のお返事では
>一つのテーブルデータが膨大になってしまうので分割してあります。
こう書かれていたのでレコード数かと思いました
レコード数が多い場合には階層構造を導入してたどりやすくする工夫などをしますが
その場合でも末端のテーブルのレコード数は減りはしません
この回答への補足
はじめの質問から二日たっており質問の意図を忘れていました^^;
質問以前に私が重大な勘違い?(考え違い?)をしていたようで・・・。
その内容を記述すると話が分かりにくくなるので避けますが、
問題解決できそうです。
>フィールド数が多いというのは正規化が出来ていない可能性大ですね
これがヒントになりました。ありがとうございます。
>一つのテーブルデータが膨大になってしまうので分割してあります。
レコードと勘違いされたようで、私の記述が悪かったです。
データという言葉のとらえ方にも色々ありますからね・・・。
それと、これは質問内容と関係ありませんが言葉使いに少し気を使われたほうがいいかもしれません。
はじめてNO3.の回答を見たとき、率直な感想として私の補足に対して煽ってるのかと思い少しイラッとしました。
しかし、そのような意図が見られないので何も言いませんでしたが、勘違いされる方もいると思いますので。
No.3
- 回答日時:
突っ込みどころいっぱいのシステムですね
これで動いてます?
>定形の物の集まり(社名テーブル)があり、
>それを必要としている複数のテーブルがそのデータを参照する場合などはリレーションシップし、
>複数から参照されるが決算期などの個々の企業によって時期が異なるもはクエリの結合をしようする?
どこをどう直せばいいのか分からないぐらい見当はずれです
>一つのテーブルデータが膨大になってしまうので分割してあります。
テーブルとはこのような理由で分割するものではありません
>上の画像で決算期はクエリの結合で問題ないですよね?
さあ?
あのシステムをここのような掲示板で作りかえるのは無理でしょうね
身近によく知っている人はいないのですか
この回答への補足
>突っ込みどころいっぱいのシステムですね
企業コードに連結しなければならない所を企業IDに連結していました。
と言いますか今思えば補足事項が足りなすぎて理解できませんね。
>これで動いてます?
制作段階でまだ動かしてはないです。
現在関数や個々に必要な機能も入れていません。
>見当はずれです
そうですか・・・
その見当はずれが理解できればいいのですが・・・。
同じデータを参照する複数のデータがある場合、テーブルを分ける。
これをすることで作業の軽減、データ量の軽減ができる。
このような理解で制作を行っていたのですが、他に参照しないのであればフィールド数が膨大になろうが、
一つのテーブルにまとめるのが普通なのですね。
>身近によく知っている人はいないのですか
いません。もともとAccessではない独自のデータベースプログラムがあり、
それをAccessで使用する形に移行するために制作しています。
元あったデータベースプログラムも私が作ったものではありませんし、
Accessを作るのも初めてで、さらに言うならばデータベースの知識もありませんでした。
データベースを利用している人にどのような利用のされ方をしているかを聞き、
最近になってそのデータベースプログラムの構造をようやく理解したところです。
ほとんど自己解決に近いですが、回答ありがとうございました。
No.1
- 回答日時:
>リレーションシップとクエリ内部結合(リレーションシップ)の違いは参照結合性や連鎖更新、連鎖消去設定の差だけでしょうか
そんな感じだと思いますが、私は必ずリレーションシップを作成してから使うので気にしたことがありません。
>データ型のオートナンバーは一度使用した番号はレコードデータを消去しても、二度と使えないのでしょうか
使えないと思います。
任意の番号にしたいなら別のデータ型にしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) accessについて 2 2022/05/31 16:58
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- その他(セキュリティ) 匿名チャットアプリ トラッキング 個人情報について 1 2023/03/29 20:35
- ハッキング・フィッシング詐欺 スマホアプリのトラッキング 個人情報について 5 2023/03/31 08:16
- その他(セキュリティ) 匿名チャットアプリでの知られたくない会話 個人情報について 1 2023/03/29 18:08
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
アクセスにエクセルのデータを...
-
Accessを使って日付を比較したい
-
Access2010 携帯番号にハイホン...
-
Accessの入力フォームから、テ...
-
accessで、「集計のオプション...
-
アクセスの重複クエリ
-
Accessのテーブル作成クエリに...
-
Accessで検索を高速化
-
Access 複数フィールドの一致
-
数値型にしたい
-
Accessのクエリによる集計が出...
-
Accessのテーブル作成ク...
-
ACCESS クエリで重複データを最...
-
「データベースまたはオブジェ...
-
access・カウント結果がゼロで...
-
選択したチェックボックスのみ...
-
Accessのフォーム上にレコード...
-
Accessのクエリで、Left関数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
accessで、「集計のオプション...
-
アクセスにエクセルのデータを...
-
Accessを使って日付を比較したい
-
Accessの入力フォームから、テ...
-
Access 複数フィールドの一致
-
Accessで検索を高速化
-
アクセスのフォームを開くとき...
-
Access2010 携帯番号にハイホン...
-
Access 2010 土日祝日を除いて...
-
ACCESS Yes/No型の集計
-
Accessのクエリによる集計が出...
-
オートナンバー型を1から始める...
-
Access97のフォーム(リストボッ...
-
Accessフォームでデータ入力で...
-
Access クエリの更新結果をテ...
-
Accessクエリのデータ表示件数...
-
Access 表を結合したい
-
Accessの「式で型が一致しませ...
おすすめ情報