こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセスの作り方

こんにちは、いつもお世話になっております。

さて、現在エクセルを用いて予算管理のファイルを作っていますが、
ブック間のリンクが大量に発生する複雑さで、アクセスに移行
した方が便利なのではないかと考えています。

が、アクセスは初心者で、テーブル作成のところから
つまずいております。

主なデータは、一年ごとの各費目の予算と実績です。
4月-3月までの各月に、各勘定科目ごとに予算があります。
それが15部署ほどあります。

テーブルは、各月ごとに作成してあとでクエリでつなぐべきか、
各部署ごとに作成すべきなのか、それとも1つのテーブルにして、
項目に部署や年度、月を入れていけばいいのか、
など、どのように作っていくのが後で困らないのかが分からないのです。

色々なサイトを見ておりますが、根本の作成の仕方、は
載っていても、どのようにテーブルを組んでいくのか、までは
もちろん載っておらず、アドバイスをいただければ幸いです。

エクセルでデータもインポートしたいと思っております
(完全一致でのインポートは難しいと思っているため
 エクセルでの加工が入っても構わないとは思っています)

実務でアクセスを触っていたのは2000頃なので、現在2013を
使っていますが、色々変わっているのも戸惑っています。

抽象的すぎてわかりにくく申し訳ありませんが
どうかアドバイスいただければ幸いです。
宜しくお願い致します。

投稿日時 - 2016-12-21 10:32:42

QNo.9271032

困ってます

質問者が選んだベストアンサー

Accessはテーブルとリレーションシップでシステムの大半が決まります。
今回はテーブルの提案をさせて頂きます
1.費目マスタ(ID、費目名、CD)
※CDはフォーム及びレポートの表示順を定義します
2.部門マスタ(ID、部門名、CD)
※CDはフォーム及びレポートの表示順を定義します
3.予算実績 (年月、部門ID、費目ID、予算、実績)
  ※レコードの重複を避けるため 年月、部門ID、費目IDの3つのフィールドを主キーに設定
   部門IDに部門マスタのルックアップ定義、費目IDに費目マスタのルックアップ定義
4.予実展開 (年、部門ID、費目ID、4月予算、4月実績、5月予算、5月実績、6月予算、6月実績
  、7月予算、7月実績、8月予算、8月実績 、9月予算、9月実績、10月予算、10月実績
  、11月予算、11月実績、12月予算、12月実績)
※レコードの重複を避けるため 年、部門ID、費目IDの3つのフィールドを主キーに設定
 部門IDに部門マスタのルックアップ定義、費目IDに費目マスタのルックアップ定義

追伸
・エクセルでは空白でも0として計算されますが、Accessでは計算されませんので数値のフィールドの規定値は0に設定しておきます
・1.2.4.でも可能でしょうが データ入力、エクセルよりのインポートは3.予算実績で受取り予実展開へ変換することになりそうです。
・不明なレコードが生成されないように 部門名、費目名には値要求:はい インデックス:重複なし

投稿日時 - 2016-12-22 18:13:11

お礼

まさにやりたいことでした。
ありがとうございます。
お礼に時間がかかってしまい、申し訳ありません。
上記で挑戦してみて、また質問させていただきたいと思います。

本当にありがとうございます。

投稿日時 - 2017-01-18 11:09:02

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

とりあえずテーブル設計については、「正規化」という原則があります。
「データベース 正規化」をキーワードにWEB検索してみてください。
いろいろ解説サイトが見つかりますので、わかりやすそうなところの解説を一通り熟読して概要を理解してください。
それからテーブル設計を始めるといいでしょう。
エクセルの感覚で設計してしまうと、データベースとしては使い物にならないものになりがちです。

> テーブルは、各月ごとに作成してあとでクエリでつなぐべきか、
> 各部署ごとに作成すべきなのか、それとも1つのテーブルにして、
> 項目に部署や年度、月を入れていけばいいのか、
> など、どのように作っていくのが後で困らないのかが分からないのです。

月ごと、部署ごとに分けるのはNGです。
一つのテーブルにして、部署、年度、月 フィールドを作成します。

複数のテーブルを後でつなぐのは重い処理になります。
一つのテーブルで部署、年度、月 フィールドにインデックスを設定しておけば、
それをもとにクエリで分割したり、グループ化したり、などは高速に処理できます。

また、部署マスターテーブルも必要になってくるでしょう。ほかにも項目に応じてマスターテーブルが必要になってきます。

とりあえず「正規化」を意識してテーブル設計をしてみてください。


> エクセルでデータもインポートしたいと思っております

そのままインポートしたものはおそらく正規化されていないので、正規形になるように加工する必要がでてくると思います。

それをインポートしたものがどのような形になっているか、によりますので、分からなければ、また、その時点で質問されるといいでしょう。

投稿日時 - 2016-12-21 13:22:50

テーブルの作り方については、まずどんな項目があるのかわからないと何とも言えないです。
少なくとも月ごとに作成するということはしません。そうする理由があるならそうすればいいですが、その場合月をまたいで金額を合計したり、項目を分類したりする時に、特殊な方法を自分で考えなけれならないです。
テーブルというのはとにかくデータを放り込んでいくところです。整理するのはクエリで実現します。

予算管理と言うのもいろいろでしょうが、単純にお小遣い帳風につくるなら、例えばテーブルはこんなふうにできます。
・ID オートナンバー
・日付 日付型
・支出項目分類 テキスト型
・支出内容 テキスト型
・金額 数値型(整数)
金額は単純に、支出はマイナス、収入はプラスで書くことにしています。
11月の収支が知りたければ、クエリで11月分を抜きだして合計することになりますし、"事務用品"という分類の2016年の支出の合計が知りたければ、そういうクエリを作ります。

支出項目の分類などと言う項目は決まった項目で書かないといけませんから、項目の一覧表を別のテーブルにする手があります。
今のアクセスはテーブルにコンボボックスを作ることができますから、テーブルへの入力が便利になりました。

予算と実績を比べたいのなら、予算のテーブルを別に作っておくといいと思います。

単なるお小遣い帳でもいろいろな作り方ができます。
まずは「どんなレポートが欲しいのか」ってことろから入っていくといいんじゃないでしょうか。
どなレポートが欲しいのか決まれば、必要な項目は自動的に決まりますし、その項目をテーブル上に置いていけばいいわけです。

既にエクセルの表があるんですから、まずはそのままインポートしてみたらいいのではなかとおもいます。
エラーが出たり不都合が出たりしたら調整していくことになりますね。

投稿日時 - 2016-12-21 12:55:16

お礼

ありがとうございます。お礼が遅くなり申し訳ありません。
今使っているエクセルのインポートから始めてみたいと思います。
予算実績管理がやりたいことなので、ある程度作ってみてから
整理して、なんとか出来るようにまた
設計してみたいと思います。

投稿日時 - 2017-01-18 11:08:03

ANo.1

現在エクセル2013を使っているのでしたら、アクセスを使うのはお勧めできません。
現在データベースを使っていないのでしたら、エクセル2013で十分と考えられます。
アクセスは、かなりの勉強が必要です。

投稿日時 - 2016-12-21 10:38:55

あなたにオススメの質問