Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1826 / 2272 ツリー ←次へ | 前へ→

【5060】職番でリレーションシップを組むのは? サチチ 05/5/20(金) 11:44 質問[未読]
【5062】Re:職番でリレーションシップを組むのは? 小僧 05/5/20(金) 13:31 発言[未読]
【5063】Re:職番でリレーションシップを組むのは? サチチ 05/5/20(金) 13:59 回答[未読]
【5064】上記、質問です。 サチチ 05/5/20(金) 14:27 質問[未読]
【5065】Re:職番でリレーションシップを組むのは? 小僧 05/5/20(金) 14:34 回答[未読]
【5066】Re:職番でリレーションシップを組むのは? サチチ 05/5/20(金) 14:48 質問[未読]
【5067】Re:職番でリレーションシップを組むのは? 小僧 05/5/20(金) 15:37 回答[未読]
【5068】Re:職番でリレーションシップを組むのは? サチチ 05/5/20(金) 15:47 回答[未読]
【5086】Re:職番でリレーションシップを組むのは? サチチ 05/5/23(月) 14:26 質問[未読]
【5087】Re:職番でリレーションシップを組むのは? 小僧 05/5/23(月) 15:34 発言[未読]
【5091】Re:職番でリレーションシップを組むのは? サチチ 05/5/23(月) 16:42 質問[未読]
【5092】訂正と サチチ 05/5/23(月) 17:13 質問[未読]
【5093】Re:訂正と追加です。 サチチ 05/5/23(月) 17:19 質問[未読]
【5094】Re:訂正と追加です。 小僧 05/5/23(月) 17:41 回答[未読]
【5099】Re:訂正と追加です。 サチチ 05/5/24(火) 14:24 お礼[未読]

【5060】職番でリレーションシップを組むのは?
質問  サチチ  - 05/5/20(金) 11:44 -

引用なし
パスワード
   災害調査報告書という物は作成しています。

テーブルで、
T_被害者情報
T_物的要素環境
T_人的要素
T_管理的要素
T_耐久対策・・・と作成してます。

全て1人のものなのですが、つながりをもつために
職番で繋ごうかと思っています。
ただ、T_被害者とT_物的要素環境など、内容につながりができません。
T_被害者には、事業種・天候・血液型・・・など
T_物的要素環境には、起因原因・環境原因・・など です。

全てに、職番-職番-職番-職番とすると、データを入力する際に
エラーが出てしまいます。
うまく繋ぐには、どの様にすればいいのでしょうか?

【5062】Re:職番でリレーションシップを組むのは?
発言  小僧  - 05/5/20(金) 13:31 -

引用なし
パスワード
   ▼サチチ さん:
こんにちは。

フィールド情報が少ないためか、5つのテーブルの関連性が
当方にはいまいちピンときません。

差し支えない範囲で他のテーブルのフィールド構成と、
どのようなデータが入るのかをご提示して頂けると
回答がつき易くなるかと思われます。

【5063】Re:職番でリレーションシップを組むのは?
回答  サチチ  - 05/5/20(金) 13:59 -

引用なし
パスワード
   目にとめていただき、ありがとうございます!
細かく記載します。

T_被災者情報
 ・・・発生日時・曜日・氏名・部署・職番・血液・性別・勤続年月日・負傷箇所 他
T_発生工程
 ・・・作業名・機種・機械NO・作業形態・災害名・災害経過 他
T_物的要素
 ・・・起因・欠陥・確認・服装 他
T_人的要素
 ・・・作業名・動作した状況・本人判断・本人行動・決め事・その他 他
T_管理的要員
 ・・・安全ポイント・監督状況・適正配置・点検・確認・報告 他
T_耐久対策
 ・・・分類・項目・内容・日程・担当・確認・備考 他

他にも、繋ぎたいテーブルはあるのですが・・・。
コンボボックスと、メモ型と、テキストで作ってますが、変えてもOKです。
コンボボックスは、きちんと出る様に繋いでます。

これに、強引に職番をおのおのに入れてみたり、NOをいれてみたりしたのですが、
やはりうまくいかないので、初心者ですが、どうかご教授下さい。
お願いします。助けて下さ〜い。

【5064】上記、質問です。
質問  サチチ  - 05/5/20(金) 14:27 -

引用なし
パスワード
   間違えて、答にしてしまいました。
よろしくお願いします。

【5065】Re:職番でリレーションシップを組むのは?
回答  小僧  - 05/5/20(金) 14:34 -

引用なし
パスワード
   ▼サチチ さん:
こんにちは。
自分もあまり得意ではないのですが、
テーブルの正規化を行うとすっきりするかもしれません。

例えば…
Aさんが事故にあいました。

→ 発生日時・曜日・氏名・部署…

不幸にもまた事故にあいました。となった場合、

「部署」「職番」「血液」「性別」「勤続年月日」は先ほどとまったく同じものを
入れることになりますよね?

このへんの絡みを整理すると

T_事故情報
…発生日時・被災者名・被災者負傷箇所

T_被災者情報
…氏名・部署・職番・血液・性別・勤続年月日

として、「T_事故情報」の「被災者名」と「T_被災者情報」の「氏名」を
リレーションすればよい事になりますよね?
(同姓同名の場合は考慮に入れておりませんが…)

ちなみに「曜日」は「発生日時」から求める事ができますので、
フィールドを設ける必要はありません。

こんな感じで正規化をすすめていくと…

T_事故情報
…事故ID・発生日時・被災者名・被災者負傷箇所・作業名

T_被災者情報
…氏名・部署・職番・血液・性別・勤続年月日

T_発生工程
…事故ID・機種・機会NO・作業形態・…

T_物的要素
…事故ID・起因・欠陥…

T_人的要素
…事故ID・動かした状況…

T_管理的要員
…事故ID・安全ポイント・…

T_耐久対策
…事故ID・分類・…

という感じでしょうか?

【5066】Re:職番でリレーションシップを組むのは?
質問  サチチ  - 05/5/20(金) 14:48 -

引用なし
パスワード
   なるほど・・・。

結び方ですが、T_事故情報の事故IDと、T_発生工程の事故ID
とを結びますよね。

では、T_物的要素の事故IDとT_人的要素は事故Iなどは、どこに結ぶの
ですか?T_事故情報の事故IDでいいのですか?それとも、T_発生工程の事故ID
ですか?ちなみに、主キーは何にすればいいのでしょう?

どうも、この主キーと、結び方にかなり苦手意識があります。
再度、お願いします。

【5067】Re:職番でリレーションシップを組むのは?
回答  小僧  - 05/5/20(金) 15:37 -

引用なし
パスワード
   ▼サチチ さん:
>どうも、この主キーと、結び方にかなり苦手意識があります。
自分も苦手な分野です(笑)

主キーはそのテーブルのユニーク(他と識別できるもの)に振ります。

T_被災者情報を例にとってみると、先に
>(同姓同名の場合は考慮に入れておりませんが…)

と書きましたが、同姓同名がいない限り主キーとして扱って大丈夫です。
>>(松井秀喜 ならば ヤンキース みたいな感じかな)

ところがたとえば部署を主キーとしようとすると、特定の誰かを認識できなく
なってしまします。
>>(ヤンキース ならば 松井秀喜 ではないですよね?)

テーブルにそのような値がない場合は、連番(オートナンバー型)を使っても
設定した方が良いと思います。

他のテーブルでもユニークになりえるフィールドを主キーにして下さい。

さて、リレーションですが…。
元々は T_事故情報 ひとつだけで管理できたものを、要素毎に各テーブルに
振り分けていったと考えると、解りやすいかもしれませんね。

 T_事故情報 対 T_発生工程
 T_事故情報 対 T_物的要素
 T_事故情報 対 T_人的要素
 T_事故情報 対 T_管理的要員
 T_事故情報 対 T_耐久対策

と結ぶといいと思います。

【5068】Re:職番でリレーションシップを組むのは?
回答  サチチ  - 05/5/20(金) 15:47 -

引用なし
パスワード
   ▼小僧 さん:
とても、分りやすいご説明ありがとうございます。

早速、やってみます。しかし、この段階で頭が???状態になり、
整理をしないとなので、再度、ご質問するのに、時間がかかる
可能性大です。が、その際は、またご協力願います。

【5086】Re:職番でリレーションシップを組むのは?
質問  サチチ  - 05/5/23(月) 14:26 -

引用なし
パスワード
   ▼小僧 さん:

やってみました!しかし、出来ないのです。
T_事故情報とT_被災者情報で氏名で結ぶことはできたのですが、
テーブルで + になる所を押すと、きちんとクエリで結べた
のは分ったので、OKだと思います。

他のT_人的・物的・管理的が事故ID(テキストで作成)で
結ぼうとしたのですが、T_物的とT_管理的だけなら
結べるのですが、T_人的を結ぼうとすると、ダメです。
それと、T_事故情報にT_人的も結ぼうとしてもダメなんです。

T_事故情報に災害形態というのを、コンボでできる様に
なっているのを、T_人的にも同じように使用しているので、
災害形態で結んでみようかとおもったら、未定義とかに
なってしまって、どうも出来ません。

あー、助けて〜という気分です。よろしくお願いします。

【5087】Re:職番でリレーションシップを組むのは?
発言  小僧  - 05/5/23(月) 15:34 -

引用なし
パスワード
   ▼サチチ さん:
こんにちは。
もう一度整理して一緒に考えましょう。

まず事故IDは数字型が好ましいかと思います。
1件目の災害、2件目の災害…のような考え方です。

さてここから…。

>他のT_人的・物的・管理的が事故ID(テキストで作成)で
>結ぼうとしたのですが、T_物的とT_管理的だけなら
>結べるのですが、T_人的を結ぼうとすると、ダメです。
>それと、T_事故情報にT_人的も結ぼうとしてもダメなんです。

T_事故情報の事故ID(数値型)とT_人的要素の事故ID(数値型)
T_事故情報の事故ID(数値型)とT_物的要素の事故ID(数値型)
T_事故情報の事故ID(数値型)とT_管理的的要素の事故ID(数値型)

となっていますか?

>T_事故情報に災害形態というのを、コンボでできる様に
>なっているのを、T_人的にも同じように使用しているので、
>災害形態で結んでみようかとおもったら、未定義とかに
>なってしまって、どうも出来ません。

T_事故情報の事故ID「1」とT_人的の事故ID「1」は同じ事故をさすものであるので
二つのテーブルに同じフィールドを作る必要はありません。
災害形態という項目は

A) 人的要素に絡むもの
B) どの要素にも分類できにくいもの

のどちらかによって、T_事故情報 か T_人的 に1つだけあれば良いはずです。

【5091】Re:職番でリレーションシップを組むのは?
質問  サチチ  - 05/5/23(月) 16:42 -

引用なし
パスワード
   ▼小僧 さん:

見捨てずに、ありがとうございます。
いいところまでは、いくのですが・・・。

>T_事故情報の事故ID(数値型)とT_物的要素の事故ID(数値型)
>T_事故情報の事故ID(数値型)とT_管理的的要素の事故ID(数値型)

↑okです。何の問題もなく、結べました!

>T_事故情報の事故ID(数値型)とT_人的要素の事故ID(数値型)

やはり、人的を結ぼうとすると、参照整合性と下2個にチェックを
入れると、こんなメッセージが出てきてしまいます。

"このリレーションシップを作成して、参照整合性を設定できません
と出てしまいます。t_事故情報のデータが、参照整合性に違反しています。"
とでます。他は、結べたのに・・・なんででしょう。

チェックを入れないと、結べるのですが、テーブルを開くと、
他はT_物的・管理的とも、+が2つ出で、開くと、きちんと氏名などが出ます。
T_人的は+が1つで、氏名がでるはずなのが、出てきません。

これは、どうすればいいのでしょうか?ちなみに、事故IDの下の標準の所は
全てのテーブルが、
フィールド=長整数
小数点=自動
規定値=0
値要求=いいえ
インデックス=はい(重複なし)

先ほどのコンボは、1つにしました。T_人的をとりました。

【5092】訂正と
質問  サチチ  - 05/5/23(月) 17:13 -

引用なし
パスワード
   すみません。追加と間違えです。

下の標準のインデックス

【5093】Re:訂正と追加です。
質問  サチチ  - 05/5/23(月) 17:19 -

引用なし
パスワード
   すみません。間違えです。
下の標準のインデックスの欄ですが、

T_事故情報=はい(重複あり)
T_管理=はい(重複なし)
t_物的=はい(重複なし)
t_人的=はい(重複なし) になってました。

それと、リレーションは、一対多になってます。

一対一になると、おかしいですよね?

【5094】Re:訂正と追加です。
回答  小僧  - 05/5/23(月) 17:41 -

引用なし
パスワード
   ▼サチチ さん:
こんにちは。

確認なのですが、T_事故情報に登録されたレコード…たとえば

事故ID 発生日時  被災者名    …
  1  5/23 17:30 山田 太郎   …

というものがあったとして、人的な要素で事故を起こしてしまったため
T_物的にはレコードが入らないという事があるのでしょうか?


また、リレーションが張れているかについてですが、
クエリで確認してみるのはいかがでしょうか?

たとえばクエリのデザインビューで

T_事故情報、T_管理、T_物的、T_人的

を表示させ、事故IDでリレーション(不要なものは外してください。)

→T_事故情報の事故ID、T_管理の安全ポイント、T_物的の起因…等を表示させると
きれいにシートビューに結果がでると思うのですが…。

【5099】Re:訂正と追加です。
お礼  サチチ  - 05/5/24(火) 14:24 -

引用なし
パスワード
   ▼小僧 さん:

いつも、分りやすくご説明ありがとうございます。
どうも、うまくいかなかったので、管理的要員に、人的をいれちゃい
ました。普通細かく分けるのが、ベストと思うのですが、勉強不足
のため、自分では、なぜかうまくリレーションができなかく、泣く泣く。
クエリにしたら、くっつくのですが、追加ができなく・・・、
という事で、一応出来た?感じです。

ただ、他の分析も出来る様に、クエリ(リレーション)でくっつけなく
ては・・・。(泣)(A3の用紙で、今現在A4の部分だけ)

一番最初に、まず、リレーション・クエリでくっつければ、
一応、きちんと入力出来る!という事で・・・、まだまだ先がありますが、
事故IDという様に、他テーブルにも、追加してみます。

また、違う質問をすると思いますが(しないで出来たら嬉しいのですが・・)
どうか、今後ともよろしくお願いします。

1826 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free