• 締切済み

ACCESS2013を学びたい

ACCESSを人並み程度には操作できるようになりたいと考えています。 「Access入門&使い方講座」というサイトを読んで、テーブル、クエリ、フォームとは何か?が言葉上では理解できたかどうか程度の知識です。 実際、自分の作りたいデータベースがあったとして、それをどう定義するか(テーブルの種類やどのテーブルにどんなフィールドを持たせるか)を決めるのが難しそうだと感じました。 エクセルを多用しているせいか、いざ自分がデータベースを作成しようとした時、1つのテーブルに全フィールドを入力してしまいそうです..テーブルを複数用意し、それをクエリで関連付けるところにアクセスの魅力があるのだと思いますが、その点は言葉では理解できても実際にはいまいち理解できていない気がします。 実際にやって覚えるのが手っ取り早く面白いと感じたので、自分の好きな株の四季報データを管理するデータベースの仕様を考えてみました。 前置きが長くなりましたが本題です。以下のようなデータベースを作成する上でのアドバイスを頂きたいです。(テーブルをいくつ作成し、どんなフィールドを持たせるかなど) ・会社毎に営業キャッシュ・フローと純利益と比較会社を管理するデータベース 特定の会社と、その会社の比較会社(複数あることを想定)の営業キャッシュ・フローと純利益を表示するデータベース テーブル:企業 会社コード←主キー 企業名 テーブル:四季報 会社コード←主キー 営業CF 純利益 比較会社(会社コードで管理) 漠然とこんな感じに2つのテーブルを定義し、クエリで上手く条件を抽出するといったイメージなのですが、クエリで条件をどう定義するかいまいち想像できません。 漠然と 会社コード(四季報T) 会社名(企業T) 営業CF(四季報T) 純利益(四季報T) /「どうにかして比較会社コードの企業名を引っ張る項目」×複数の比較会社名 上のようなクエリをイメージしています。最終的にはどうにかして、各会社の比較会社の営業CFと純利益が比較して見えやすいようなデータベースを考えているのですが 「どうにかして」の部分がまだ理解できていません。     

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.6

前回 フィールドのプロパティーについて触れましたが 四季報の会社コードにルックアップを適用します。 【四季報をデザインビューで開く】⇒【会社コード】⇒【ルックアップ】 ⇒【表示コントロールの入力枠の右端】⇒【コンボボックス】 ⇒【値集合ソースの入力枠の右端】⇒【企業】⇒【列数 2】 ⇒【列幅 0】 連結列 1 は企業テーブルの主キー(会社コード)が1行目にある 列数 2 は 会社コードと企業名 列幅 0 は 上記の1番目の会社コードは表示しない これで四季報テーブルを開くと数値型の会社コード欄は会社名が表示されます ------------------------------------- >その会社の比較会社(複数あることを想定) 企業テーブルに業種等のグループ化するフィールドを追加しグループをキーとしたクエリーで対処 四季報のデータを複数期間で比較するためのグラフはこのクエリーをExcelへエクスポートして エクセルで対応します。 一方的な説明ですので、舌足らずのところも多々あると思います ご理解できないところはご遠慮なく

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

うっかりしていました 質問の中に 「それをクエリで関連付けるところにアクセスの魅力があるのだと思いますが……」 とありますが、クエリでも関連付けらしきものが出来ますがこれはそのクエリだけのもので システム全体には反映しません。 リレーションシップの設定は 【データベースツール】⇒【リレーションシップの設定】⇒【】⇒【】⇒【】⇒【】⇒ と入ります。 もう一例として 従業員名簿を考えてみましょう Exelで作成すると 最初に部門名で、次の行からその部門に属する社員名を記入しますね 人事移動の季節になると、この書き換えの作業量はバカになりません Accessだと 部門テーブルと従業員テーブルの組合せになります 人事異動の時、移動のあった従業員の所属部門コードを書き換える

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

長らくお待たせいたしました。 あなたのテーブル設計を作り替えましたので散子にしてください。 テーブル:企業 会社コード←主キー 企業名 テーブル:四季報 会社コード←主キー 営業CF 純利益 比較会社(会社コードで管理) 四季報の情報は営業年度毎に発生するので会社コードは主キーには成り得ません テーブルの一例ですが 1.企業テーブル ・会社コード(主キー 長整数型) ・企業名 ・本社所在地 ・業種ID 2.四季報テーブル ・ID(主キー オートナンバー型) ・会社コード(長整数型) ・決算日 ・営業CF ・純利益   財務CF,投資CFCFはも追加して企業の実力表現出来ますね   また各CFの要素に展開してフィールドを用意するのもおもしろいですね また資本金等の経歴テーブルも如何ですか 3.経歴テーブル ・ID(主キー オートナンバー型) ・日付 ・会社コード(長整数型) ・資本金 ・従業員数 以上のテーブルリレーションシップで関連付けたものを添付します。 どのリレーションも 1対∞ の関連になっています。 確かなテーブル設計で、次の工程(クエリ、フォーム、レポート)が楽になります。 また、フィールドのプロパティー丁寧に設定することにより、データ入力の効率化、 入力ミスの防止に繋がります。 フィールドのプロパティー:定型入力、既定値、表題、インデックス(重複の有無)、 IME入力モード、IME変換モード、ふりがな、 住所入力支援 ルックアップ 四季報テーブルに会社コードがありますがこの設定を会社コードのコンボボックスで 企業テーブルの会社名を表示します。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

テーブル:企業 会社コード←主キー 企業名 テーブル:四季報 会社コード←主キー 営業CF 純利益 比較会社(会社コードで管理) 1.この2つのテーブルには会社コードがともに主キーになっていますね  テーブルを分割する意味がありません 2.リレーションシップがEXCELと決定的に違いです まだお知らせしたいことがありますが、これから出かけます。 次の回答まで締めずにお待ちください

回答No.2

>ACCESSを人並み程度には操作できるようになりたいと考えています。  私の場合は、Accessでアプリケーションを開発するだけの技能の習得に6ヶ月の独習期間を必要としました。  Accessは、私にとって初めてのデータベース言語ではありません。UNIXでC/Sシステムを開発した経験がありました。でも、そこで覚えた技術はほとんど通用しませんでした。SQL言語に関する知識と経験は無駄ではありませんでした。また、テーブル設計に関する知識も役に立ちました。でも、やはり、Accessでの開発技法を確立するには半年は悪戦苦闘。大体、一日8時間の独習を半年。  なお、AccessのVBAは、それほど苦にはなりませんでした。Quick Basic、VB6、Quick Cでのアプリケーション開発の経験があったからです。それでも、半年間は、Accessのヘルプ文を全て印刷してローラ作戦でテスト。これを3回しました。3回目のローラー作戦が終わった時、やっと、「ふーん、Accessってこういうもんなんだ!」というのが判りました。ちょっと、物覚えが笑い。  まあ、覚えの早い方は、もっと短時間で可能かも知れません。でも、UNIXでC/Sシステムを開発し、かつ、VB6での開発経験があっても、私は、半年間の独習期間を必要としました。  そういうことで、 1、テーブル設計。 2、SQL言語。 3、VBA。 4、各種ライブラリ開発技法。 5、各種アプリケーション開発技法。 と学ぶことは多いです。「ACCESSを人並み程度に」は、そうそう簡単ではないと思いますよ。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>実際、自分の作りたいデータベースがあったとして、それをどう定義するか(テーブルの種類やどのテーブルにどんなフィールドを持たせるか)を決めるのが難しそうだと感じました。 はい、なかなか難しいですよ。データベースの設計方法に関する書籍が出ていますので、それらを購入して勉強する必要があります。 >>漠然とこんな感じに2つのテーブルを定義し、クエリで上手く条件を抽出するといったイメージなのですが、クエリで条件をどう定義するかいまいち想像できません。 当然ですよ。やっぱり、最初は、書籍やネットで、実際のプログラムの作り方を参考にして作るのがいいと思います。書籍の事例や他人の作ったプログラムも見ず、いきなり自分だけの力で作ろうってのは無理でしょう。 >>「どうにかして」の部分がまだ理解できていません。 まあ、そんなに簡単には理解できないと思います。焦らず勉強しましょう。

関連するQ&A