![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_06.png?e8efa67)
accessでテーブルを作成するときですが、テーブルの形式は縦並びではなく
横並びのほうがいいのでしょうか?
もともとあるエクセルのデータをaccessでテーブルにしたのですが、その形式が
縦並びとなっています。
例えば、
氏名 性別 住所 異動歴
Aさん 男 ○○〇 経理課 〇年11月
総務課 〇年10月
のように異動歴などが縦に並んでいます。
この場合これからフォームでテーブルを更新していった場合縦並びだとうまく更新されないのでしょうか。
エクセルの方を直そうとすると何百人ものデータを変えなければいけなくなるのでどうか良い方法を教えて頂きたいです。
No.2ベストアンサー
- 回答日時:
その場合の縦とか横とかの意味がよくわかりません。
。。データベースのテーブルを視覚的に言い表す場合、列が項目で、行が1件、1件のデータです。
なお、複数の項目をデータベースのテーブルで表現しようとする場合、その中のある項目が1件のデータの中に複数ある・・・しかもデータによってその個数が異なるという場合は、その部分を切り出して別テーブルにする必要があります。これを「正規化」と言います。データベースのテーブルを作成する際はこの正規化という作業が欠かせません。そこを勉強して下さい。
ご質問の場合ですと・・・
氏名 性別 住所 異動歴
を一つのテーブルにするのではなく、
氏名 性別 住所
と
氏名 異動歴
の2つのテーブルに分けるのです。
本当の所は・・・
社員番号 氏名
社員番号 性別 住所
社員番号 異動歴
の3テーブルですね。
参考まで。
No.4
- 回答日時:
N0.3の方の指摘の通り、二つのテーブルに分けて、社員コードで1対多のリレーションシップを設定します。
氏名、性別、住所は、一人に一つのデータとなります。
これに対し、異動履歴は、1回の人も、5回の人も、10回の人もと人それぞれの数が発生します。
これを処理するには、1対多のリレーションテーブルとする必要があります。
社員名簿テーブルと異動履歴テーブルを作成し、共通の社員コードフィールドで両テーブルのデータを接続します。
これもデータの正規化の一つの作業となります。
No.3
- 回答日時:
accessは、リレーショナル・データベース(RDB)で、エクセルとはデータの持ち方がちがいます。
これを理解する必要がありますね。
RDBは、異動歴のような繰り返しデータは切り出して、別テーブルとします。
このあたりのデータ設計は、「第一正規化」「第二正規化」「第三正規化」などと呼ばれています。
また、処理スピードを考慮して、あえて「正規化破り」をした設計にすることもあります。
実際の設計は、簡単そうに思えるのですが、初めてみるとなかなか難しかったりします。
大きな書店にいけば、「データモデリング入門」なんてタイトルの専門書があると思いますので、購入されてみるのもいいと思います。
一部のRDBは、異動歴のようなデータを配列として複数格納できることもあるようですけど、そこだけ処理が特別になるような感じがしましたので、あまりお勧めではないと思いました。
No.1
- 回答日時:
テーブルに縦横の概念はありません。
フィールド(氏名、性別、住所、移動歴) と レコード(Aさん、Bさん、・・・)
というものがあるだけです。
ご提示のデータで、二行目の氏名に何も入っていないレコードは、アクセスとしては不正なものとなります。
一般的に、移動部署を管理するようなものを作る時には
職員テーブル
職員ID、年齢、性別、住所、
部署テーブル
部署ID、部署名称、、、、
移動履歴テーブル
職員ID、部署ID、移動日
・・・・
のような感じ作っていき、
それらを組み合わせて必要なデータをみたり、印刷したりする機能をつけていくことが多いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
アクセスにエクセルのデータを...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Access 複数フィールドの一致
-
アクセスのフォームを開くとき...
-
Access 2010 土日祝日を除いて...
-
accessで、「集計のオプション...
-
Access2010 携帯番号にハイホン...
-
Accessフォームでデータ入力で...
-
アクセスのクエリの”ここ”を理...
-
Accessの入力フォームから、テ...
-
ACCESS Yes/No型の集計
-
テーブルとテーブルを結合したい
-
accessのテーブルについて教え...
-
Accessで検索を高速化
-
アクセスのオートナンバーの再...
-
ACCESS クエリで重複データを最...
-
ACCESSのフォームからデータの...
-
「メソッドまたはデータメンバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Accessの入力フォームから、テ...
-
アクセスにエクセルのデータを...
-
accessで、「集計のオプション...
-
Access2010 携帯番号にハイホン...
-
Access 複数フィールドの一致
-
Accessで検索を高速化
-
Accessフォームでデータ入力で...
-
MS-Accessのレコード内のフィー...
-
Accessのクエリによる集計が出...
-
アクセスのフォームを開くとき...
-
アクセスの重複クエリ
-
Access クエリの更新結果をテ...
-
Accessクエリのデータ表示件数...
-
accessで重複を排除してデータ...
-
オートナンバー型を1から始める...
-
アクセス初心者です AとB 2つの...
-
Access 2010 土日祝日を除いて...
おすすめ情報