![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
一対多でリレーションシップされているテーブルがありますが、
入力を一つのフォームで入力したいので
ユニオンクエリで二つのテーブルを一つのクエリに使用と考えています。
このままフォームを作成すると一側のデータと多側のデータで
被っているデータが表示されます
グループ化のようなことは出来るのでしょうか?
テーブルは企業データTと店データTがあります。
企業側が一、店側が多です。
企業側も店側もフィールド内容はほとんど同じです。
企業側は社名フィールド、店側は店名フィールド程度の違いです。
単独店は店を複数持たないので企業側も店側も同じデータを持っています。(企業データ=店データ)
単独店は企業側、店側ともにデータ入れてあります。(店側でいらないフィールドは入れていません。役員名など)
内容が同じなのでどちらか片方に入力された場合データをもう片方に移すようなことがしたいのですが、両方のテーブルに同じ単独店のデータを持つ必要はないのでしょうか?
No.4ベストアンサー
- 回答日時:
#1で回答したものです。
あとから質問者さんからテーブル属性情報が出てきたので、
元の自分の回答を見直しました。
#3さんの回答がオーソドックスだと思います。
(そうなっていない某社のERPパッケージツールもありますが。。。)
#3さんの設計どおりなされば、店舗が1店舗だろうが1000店舗
あろうが[企業テーブル][店テーブル]の2つのテーブルの組み合わせ
だけで出来ると思いますよ。
ということでユニオンクエリーの出番もなくなります。
この回答への補足
疑問点はNO3に書いたとおりです。
少し勘違い?をしていました。
サブフォームに店舗側を表示する形になるのですね。
ということは単独店の店側の情報は更新クエリで更新するということになるのですね。
No.5
- 回答日時:
sskjさん。
別件で恐縮ですが、既にクローズされている質問QNo.3934665の回答への補足を読みましたが、
ACCESSの日付・時間データは内部ではシリアル値を持っております
CDate関数で変換する際、このシリアル値に変換できなければなりません。
日付式で表すことのできる日付の範囲は、西暦 100 年 1 月 1 日 ~
西暦 9999 年 12 月 31 日です。したがって年に0年を設定すると日付型に変換出来ません。
date(),now()関数等で今日の年を設定、もしくは他の関数と
組み合わせて「今年から○年前の年」等にする必要があります。
本件と併せてご検討ください。
わざわざありがとうございます。
QNo.3934665の件ですが締め切り後に解決いたしました。
00日は更新クエリでNULLに変換し、NULLの扱いに困っていましたが
以下のような関数で解決いたしました。
生年月日和暦: IIf(nz([生年月日],"")="",Null,IIf(Mid([生年月日],4,2)="",Format(CDate(Left([生年月日],3) & "/" & "01"),"ggge""年 月 日生"""),IIf(Mid([生年月日],6,1)="",Format(CDate(Left([生年月日],3) & "/" & Mid([生年月日],4,2)),"ggge\年m""月 日生"""),Format(CDate(Left([生年月日],3) & "/" & Mid([生年月日],4,2) & "/" & Right([生年月日],2)),"ggge\年m\月d""日生"""))))
No.3
- 回答日時:
A社
1号店
2号店
こういう関係は1対多とは言いません、親子関係といいます
1対多というのは商品テーブルと販売テーブルのような関係を言います
販売テーブルは何度も同じ商品を参照するという関係です
で、親子関係の場合
[企業テーブル](企業ID、社名、電話番号、ファックス、住所、郵便番号、URL、資本金、設立、創業、代表者名、代表者生年月日、役員、株主銀行、仕入先、販売先、主力ブランド) ←企業IDが主キー
[店テーブル](企業ID、店ID、店名、電話番号、ファックス、住所、郵便番号、創業代表者名、) ←企業IDと店IDで主キー
のように親の主キーがこの主キーの一部になるような関係になります
>単独店のデータをこの多店舗と同じ企業テーブル、店テーブルに
>入れてよいものかどうか・・・。両方に入れるべきかどうか。
店がひとつしかないものも同じ構造にしたほうが扱いが簡単です
動物分類のひと属ひと科ひとのように階層構造を合わせておいたほうがいいのです
1対多とか、ユニオンクエリとか言葉は知っておられますが意味を取り違えていますよ
もう一度勉強しなおしたほうがいいみたいですね
この回答への補足
現在のリレーションシップの状況を見てもらうのが一番早いかと
思いますので問題点があればご指摘お願いします。
ttp://upload.jpn.ph/img/u16816.jpg
備考や仕入れ先に関してはこちらの事情でわざとフィールドを別に持たせています。
説明を一部省いた項目もあります。
親子関係については聞き覚えはありますが、私の手持ちの
解説書には記載されていませんでした・・・。
以前のデータベースで使用していた項目で何に使用していたか分からない項目があるのですが、後に消しても問題ありませんよね?
入力フォームの話ですが、企業テーブル、店テーブル別々にフォームを
作成することが出来るのは分かるのですが、企業テーブル、店テーブルを
一つのフォームで同一のフィールド項目を同じボックスで入力できるのでしょうか?
それと、単独店の店側の情報は企業テーブルへの入力時に反映されるようにできるのでしょうか?
それとも個別に更新クエリをしようするのですか?
データレベルという項目があるのですがこれは00なら単独店、12なら多店舗、10なら多店舗(企業情報)となっています。
店コードですが、企業テーブルにある単独店の企業コードと店テーブルにある単独店の店コードが同じでも問題ないですよね?
No.2
- 回答日時:
>入力を一つのフォームで入力したいので
>ユニオンクエリで二つのテーブルを一つのクエリに使用と考えています。
ユニオンクエリは追加更新付加のクエリですから入力には使えませんよ
ただ
>一対多でリレーションシップされているテーブルがありますが
ということから判断するとユニオンクエリじゃなく普通の抽出クエリみたいですね
しかし
>企業側も店側もフィールド内容はほとんど同じです。
これをみるとそれも怪しくなってきますね
>このままフォームを作成すると一側のデータと多側のデータで
>被っているデータが表示されます
これも何を言っているのか分からない
どうもテーブル設計が全く分かっておられないようですね
作られたテーブルの詳しい情報をアップしたほうがいいみたいですよ
No.1
- 回答日時:
sskjさん
UNIONクエリーを参照するフォームからは新規データの入力が
出来なかった気がします。画面参照もしくは帳票出力のみ
質問に対する直接の答えではありませんが、
通常そのようなDBを設計する時には
企業データテーブルには会社の社名、取引条件などを
店データのテーブルには住所連絡先、ローカル条件などを
させる設計をします。
したがって、支店が無くても本店分として
企業データテーブル:店データのテーブル=1:1にします。
必要ならば店データテーブルに本店にはフラグ(チェックボックス等)を用意します。
しかし、企業データテーブルにもどうしても住所情報を持たせたい
場合は入力フォームの設計では
カード型フォームの設計で
企業データ1件1画面で、1企業に対する支店が明細行で表示される
サブフォームタイプのフォームにして、企業データにデータを
入力したら明細行にもデータが転写れるようにします。
具体的にはVBAコーディングをするか、サブフォームの各入力項目の
初期入力値に参照先の親フォームの項目を指定します。
(ただしこのままノーチェックだと明細行の新規レコードを
作るたびに企業データの内容と全く同じ支店がたくさん出来るので、 必ず手で上書き修正し、それをしなかった場合は無効にするなどの
工夫が必要です)
この回答への補足
テーブルの話ですが、
A社 ←企業情報
(A社)一号店←店情報
(A社)二号店←店情報
※多店舗
店をいくつも持っている企業の場合を多店舗と呼んでいます。
単独店と違い、店情報は店情報。
企業情報は企業情報で別の情報です。
B社←企業情報
B店←店情報
※単独店
店を一つしか持たない企業を単独店と呼んでいます。
この場合B社の情報=B店の情報となります。
多店舗の場合、企業が一、店側が多で問題ないかと思いますが
単独店のデータをこの多店舗と同じ企業テーブル、店テーブルに
入れてよいものかどうか・・・。両方に入れるべきかどうか。
単独店は単独店で別テーブルを用意する良いのか?。
よく分かっていません。
企業側も店側も項目は似ているので同じフォームで入力したいです。
(元の質問)
ここの話で言う企業データ及び店データは以下の項目です。
社名、電話番号、ファックス、住所、郵便番号、URL,資本金
設立、創業、代表者名、代表者生年月日、役員、株主
銀行、仕入先、販売先、主力ブランド
店情報は以下のみです。
店名、電話番号、ファックス、住所、郵便番号、創業
代表者名、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクエリでデータの入力...
-
Accessのリンクテーブルのパス...
-
Accessクエリーで両方のテーブ...
-
GETPIVOTDATAを使...
-
Accessファイルを作成者以外は...
-
グラフとデータテーブルの順序...
-
アクセスのコンボボックスのデ...
-
このリレーションシップを作成...
-
what-if分析ツールのデータテー...
-
Excel→Accessへ貼り付けがおかしい
-
ACCESS初心者です。
-
ExcelデータをAccessにてリンク...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
Accessのフィールド数が255しか...
-
Access テキスト型に対する指定...
-
セルの右クリックで出る項目を...
-
APN設定について教えていただけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリでデータの入力...
-
Excel→Accessへ貼り付けがおかしい
-
Accessクエリーで両方のテーブ...
-
Accessファイルを作成者以外は...
-
Accessのリンクテーブルのパス...
-
GETPIVOTDATAを使...
-
AccessのクエリをExc...
-
アクセスのコンボボックスのデ...
-
AccessからExcelのデータを消す...
-
Access 旧データを新データに入...
-
グラフとデータテーブルの順序...
-
EXCEL データテーブルの数字を...
-
ACCESSデータを削除してしまい...
-
Accessでの併合のやり方
-
ACCESSのサブフォームでの既定...
-
線の画像を座標数値化するソフ...
-
EXCELからSharepointデータを参照
-
WIN7 64bit版でOffice 32bit
-
AccessのDBを理解するコツは?
-
リンクテーブル(複数)のパス...
おすすめ情報