- 締切済み
初心者です。Accessを使って、学校のデータベースシステム構築を検討
初心者です。Accessを使って、学校のデータベースシステム構築を検討中です。 やりたいことは以下の通りです。 【教務関連】 ・学生の名簿管理 ・学生の成績管理 ・学生の情報管理 ・出欠管理 ・成績証明書を成績管理のデータベースから連動させて印刷できるようにする。 【学生募集関連】 ・資料請求者の情報管理 ・説明会参加者の情報管理 ・受験者の情報管理 ・上記3つを連動させて、対策を練られるようにする 【経理関連】 ・学生の授業料請求 ・延滞料請求や物品販売システム ・講師料の管理 【その他】 ・名簿の抽出 ・宛名シール出力 基礎的なマニュアル本と、応用的なマニュアル本など、独学でできるツールを利用して構築しようと考えています。 以上のことをアクセスでデータベース構築するのは、初心者にとって無理な話でしょうか?
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- gadd3
- ベストアンサー率46% (211/451)
> マルチユーザーとは、何人もアクセスを > いじる状態、ということでしょうか。 はい、そうです。 > とすれば、管理者、教務、経理の3人しか > いじることはないと思うのですが、 > それでもマルチユーザーとなりますか? はい。 2人以上が、つまり、2人か3人が 1つのAccessのファイルに同時にアクセスして お仕事しないといけないような状況であればマルチユーザとなります。 でも3人のうち、「常にだれか一人にしか使わせない」仕様にして作れば マルチユーザーにはなりません。 マルチユーザ → 同時複数台数アクセス、という感じです。 マルチユーザ対応ということで作る場合はそれなりに工夫が必要と なってきます。 どんなことが必要になるかは、また別の質問をたててみてください。 Accessのマルチユーザー利用で注意しないといけないのは ファイルが壊れることが稀にある、ということです。 VistaとWin7では検証してませんけど、OSがXPや2000だと マルチユーザー対応させるとファイルが壊れることがちょくちょくあります。 クライアントが20台くらいになると、規模や仕組みにもよりますが いったん壊れ始めると止まらないような形で壊れたりすることもあります。 データ量が少ないときは顕在化しにくいですが、数万件とか増えてくると 症状が出始めたりします。(あくまでもパソコン台数が多い場合です。) ただ、クライアントが3人(3台)だけなら、まず破損は生じないと 思いますので、あまり心配いらないとは思います。 多分、バックアップだけこまめに、確実にやっておけばいいと思います。 Access(MDB系のファイル)ではバックアップは必須で、バックアップを怠って、 ファイル破損でデータをすべて失う人がたまに居ますので、 (掲示板でもちょくちょく見かけます)ご注意ください。 最適化、という機能を是非お早いうちに学習してください。 「Access ファイル 破損 」でWeb検索すると色々と情報が出てきます。 が、怖がる必要はありませんので、「ふーん、こんなことがあるんだ。」と まずは覚えておいて、データのバックアップだけ必ずこまめにとってください。 破損自体は掲示板でちょくちょく見かけるとはいえ、確率は低いですから。 (でも実際にあるので注意は必要なのです。多分一回くらいはご経験されると思います。) ※回答の文章が長くて、また、わかりにくくてすみませんでした。
- layy
- ベストアンサー率23% (292/1222)
どちらかと言えば、設計は質問者様自身で行うこと。 じっーくり時間かけて良いです。 「考える」「悩む」ことしないで進めていけばいいモノ作れませんね。 クエリやフォームでどうするかっていうのは ネットでもけっこう同じようなテクニックありますが、 設計(基本構造)は同じものはそうあるものでない。 がんばりましょう。
- hisappy
- ベストアンサー率46% (184/392)
こんにちは。#1です。 私がこの質問文に遭遇してから約一日、さまざまな意見がでてきましたね。 頭に残った質問文なので、空き時間に気分転換のノリで手を出してみました。 ということで、「私が設計するとこんな要素が出てきた」という視点で 材料を提供してみたいと思います。 まずはテーブル編。「OOテーブル」の「テーブル」表記は「T」に略。 各Tに属するデータ項目もある程度考えたものの、 ここでは文字数の関係で全部略。 学籍簿T(いわゆる名簿情報) 所属T(学年、クラス、出席番号など) 出欠T(学籍番号と授業の年月日、出欠状況など) 時間割T(出欠情報の基準となる、いわゆる「時間割」の情報) 講師T(講師側の名簿情報) 授業T(授業の名称や担当講師など、時間割に反映される情報) 期間T(授業Tの前後期などの区分、成績判定の際に利用?) 成績T(学籍番号、授業、成績の対応付け情報) 成績証明書署名T(成績証明書の発行履歴向けにひとまず用意) 資料請求者T(資料請求者の氏名、住所など) 請求内容T(資料が複数ある場合には別Tにするとよさそう) 資料情報T(提供する資料の情報、学科などで複数の資料になる場合に要りそう) 参加者T(説明会参加者の氏名、連絡先など) 会場T(説明会開催日や場所違いなどで情報が複数となるなら必要) 説明会申込T(参加者が複数の説明会に申し込めるなら必要かな) 受験者T(受験者の氏名や出身校など) 経理関連では 授業料Tや授業オプション料金T、延滞加算Tや講師料Tなどなど でも経理部分まで考える時間…というより元気はなかった。 続いて画面編。要りそうだと思って思いついたものだけなので 要らないものや、必須なのにぬけているものもあります。 レイアウトの事はもちろん画面遷移(つまりは操作の流れ)まで考えていないので 何がどう連携するのかはここでは全部略。 メインメニュー(文字通り。ここから全ては始まるる) 学籍簿画面(学生情報の新規登録、更新) 所属管理(入学から卒業までの学級情報。Accessなら別画面が作り易いと思った。) 学生一覧(いわゆる生徒一覧。印刷したりで結局必要になるならねぇ。) 出欠管理・学級別(学級毎の出欠管理。紙ベースでの定番の形式?) 出欠管理・学生別(各学生毎の出欠情報。DB使うならできて当然だと思われそうなので。) 出欠管理・授業別(講師を軸にした出欠情報。学生別ができるならこちらもできて当然と思われそうなので。) 時間割・通常(学級、曜日を縦横の軸とした時間割表をイメージ。出欠管理の基盤となる。) 時間割・変則(休講などのため時間割に変更が発生した時の情報を登録) 講師情報(講師がいなくては授業が始まらない。) 授業情報(誰がどんな授業をどの期間するのか決まらないと時間割が作れませんよね。) 授業一覧(現在、どんな授業が開講可能か一覧でみれるのは…あって当然扱いなのでしょう。) 成績情報・学生別(いわゆる通信簿ですね。) 成績情報・授業別(講師用の成績一覧表?) 判定条件設定(優良可不可判定を自動的にする場合の基準情報。テストの点数だったり、出席日数だったり。) 成績証明書(学籍番号入力したらいきなり印刷ってのではおかしいので、一旦画面に表示します。) 他にも資料請求者の情報登録や、説明会の会場情報、試験会場情報など 書き出していったら思考に筆記が追いつかなくて断念。 (「書き出す前に忘れている」という真実には気が付いてはいけないらしい。) ひとまず思いついただけでもこれだけありますし、 経理関連部分と印刷物に関するものは丸々抜けています。 そしてもちろん、テーブル設計で発生するデータ項目とその連携の仕方の説明を抜いています。 しかも、Accessでの画面や印刷での処理に四苦八苦する点など考慮していません。 まずは、市販書籍の住所録処理を下地に学生情報部分を確立して そこからボタンを追加して学級一覧、出欠情報あたりに展開でしょうか? さて、開発を楽しめる手がかりの1つにはなりそうですか?
- gadd3
- ベストアンサー率46% (211/451)
何度もすみません、さらに補足です。 Accessは (01)エンドユーザーとしてデータ検索や抽出、計算をする機能(分析をするための機能) フィルタ、クエリ、ピボット、グラフなど。 (02)システム構築者としてシステムを作るための機能 フォーム作成、VBA、SQL、COM、セキュリティ機能、など。 の2種類があります。 (01)の機能を熟知して使えないと、(02)で無駄なプログラムや機能ばかり作る羽目になります。 右クリックでの検索や抽出、フィルタ機能、クエリは本当に便利ですから まずこちらを先に覚える必要があります。 でないと、短時間にある程度使えるシステムを作るのは難しくなると思います。 (01)の機能を熟知して使えるようなら、ユーザーにも(01)の機能のリファレンスだけ渡しておけば、それでまかなえる機能は造りこまなくてすみます。 ↓例えばこんな感じでフィルタについて覚えておくと、かなり無駄な機能作成を防げます。 http://www.katch.ne.jp/~osamu/filter.doc Access2000での右クリックでのフィルタ機能のことが書いてありますが、これだけでも、並べ替え機能と一緒に使えば、相当なデータ分析をすることができます。 こういったことを学ばずにAccessでシステムを作ると、本来作る必要が全く無い、無駄な検索機能ばかりを作ることになります。 また、独学するにはWebは後にして、先に書籍で学ぶほうがいいと思います。 そのほうが早く学べます。 おすすめは以下。 バージョン2000の本ですが、Accessの概要をつかめます。 http://www.bookoffonline.co.jp/old/0012890687 http://www.bookoffonline.co.jp/old/0015213527 http://gihyo.jp/book/2004/4-7741-1975-X この本の一語一句を読み、テスト操作してみます。 エンドユーザーの機能、システム構築者の機能、どちらなのかをよくイメージしながら。 これで「基本機能」のそうざらいを一応やってからのほうが回り道のようで早いと思います。 これらの「あくまでも」「副参考書」として、わかりやすい説明のあるWebを参考にするといいと思います。 例えば有名どころのサイト http://www.mahoutsukaino.com/ http://www.accessclub.jp/ http://www.accessclub.jp/linksite/index.html なお、高度なユーザー別セキュリティ(役職別セキュリティなど)を組み込みたいならAccess自体を避けるべきです。 Access(MDBファイル)+Excelのシステムは、セキュリティがほどんどいらない環境下でしか、活かせません。し、システム自体が作れないと考えてもいいです。(機能追加が異常にしづらくなる) その場合は、最初からAccessADP+SQLServerExpress+Excelのほうがいいと思います。 がんばってください。
- gadd3
- ベストアンサー率46% (211/451)
補足です。 何でもかんでもVBAで処理するというのは結構ムダが生じますので、 Access、Excelの機能を熟知してどうコーディネイトするとよいかも考えるとよいです。 例えば、ピボットテーブルは非常に有効で強力なツールです。 はっきしいって、Accessの「レポート」機能よりも便利なことが多いです。 もちろん、レポート機能も便利なので、 目的によって使い分けます。 Accessのレポート機能のほうがすばやくできる帳票処理もあるので。 一番愚かなのは、Excelピボットでやれば10分で済む集計やリストアップに Accessレポートで頑張ろうと思って何日もかけることです。 ほんとうにヒマがあるときしかそんなおろかな事はやってはいけません。 スキルアップするにはしますが、実際にその腕を振るう場面はほとんどありません。 それよりもCOMオートメーションで、Accessから直接、 VBAにてExcelのピボットテーブルを操作すれば かなり効率の良い集計などができます。 AccessのピボットをVBAで操作する情報はすくないので Excelのピボットを使う方法をおすすめします。 とにかく、Accessだけで、Excelだけで、というのはだめです。 効率がわるいです。 Accessの得意、Excelの得意をお互いにまかせてやるのが一番効率がいいです。 ピボットをVBAで操作することを学習するのに最適なサイト http://pvttbl.blog23.fc2.com/blog-entry-1.html
- gadd3
- ベストアンサー率46% (211/451)
つづきです。 >【学生募集関連】 >・資料請求者の情報管理 >・説明会参加者の情報管理 >・受験者の情報管理 >・上記3つを連動させて、対策を練られるようにする 対策を練るというのがどのレベルまでの話かわかりません。 稼動後に成長させてい部分になるでしょう 。が、「とりあえず分析できるように」という意味であればこれも、 マルチユーザなら一ヶ月くらいかなあ。シンプルなものなら。 スタンドアロンなら4、5日かな。 >【経理関連】 >・学生の授業料請求 >・延滞料請求や物品販売システム >・講師料の管理 3ヶ月から半年くらいかけますかね。 働きながらなら。 >【その他】 >・名簿の抽出 >・宛名シール出力 稼動後。必要に応じて。 あらかじめわかってるものなら、シンプルなものなら4、5日くらいでしょうか。 コツを知っててこれくらいです。 Accessが初めてで、かつ、独学なら、この3倍~5倍はかかると見て頂いてよいと思います。 あと、マルチユーザで使うのかどうかも問題点となります。 Accessはマルチユーザーでやるならそれなりの設計をしなければいけませんが、 まず情報が少なすぎます。 Webや書籍では、1~2人で使う場合の設計の情報しかありません。 唯一、マルチユーザー的な設計をAccess「だけ」でやる例の載った書籍は Access2000時代の書籍しかありません。 また、サーバにデータを置くにしても、WinXPなどのサーバOSでないOSだと 同時に8人くらいしかアクセスできません。 ホントは10人(10台)同時にアクセスできるはずですが、裏方でいろんな プログラムが勝手にサーバにアクセスしたりしてると、同時アクセス数は減ります。 また、Accessは同時アクセスするとよくファイルが壊れるといわれます。 そうならないためのコツも色々とあるのですが (特にレジストリ設定Oplockなど。サーバ、クライアント、両方とも。 Win7などでOplock設定などができるかどうか知りませんが XPまではこれをしないとよくファイルが壊れます。 マルチユーザーの場合。) マルチユーザー設定だとそういうことも必要となってきます。 でもWeb上にそういう情報はまず無いです。 マルチユーザー利用なら、AccessのADP+SQLServerExpress、などのほうが堅牢かもしれません。 僕は経験があるので、マルチユーザでも壊れないシステム、速度低下しないシステムをAccessだけで作る方法を知っていますが、それにしても、それなりに時間をかけたからやれるようになりました。 やはりなんでも「すぐには」というわけにはいきません。 Accessにも一応、クエリオプティマイザのようなものがあるので、そういったことも学ばれると良いと思います。「access rushmore クエリの最適化」などの語句でWeb検索してもいいです。 古い情報ですが、JETエンジンを使う(つまりmdb系のファイル)なら役に立ちます。 あと、古い本ですけど、「DAO3.6のMicorsoft Jetデータベースエンジンプログラマーズガイド」などがめちゃくちゃ参考になります。でもAccess初心者の方にはちょっと難しいかもですけど。 がんばってください。
お礼
マルチユーザーとは、何人もアクセスをいじる状態、ということでしょうか。 とすれば、管理者、教務、経理の3人しかいじることはないと思うのですが、それでもマルチユーザーとなりますか?
- gadd3
- ベストアンサー率46% (211/451)
時間との戦いだと思います。 短期に・・・・、例えば一ヶ月以内に、ということでしたら無理な気がします。 でも「お仕事の合間」に1~3年かけて、というなら上記の半分からすべてはできると思います。 1日中、Accessに時間を割けるなら、1年くらいかなー。 デバッグやAccessのクセを知る、バグのような「仕様」を理解する、意味不明の不具合(Access自体が持つバグ)と戦う、ファイル破壊と戦う、そういった時間と独習時間を含めてです。 穴だらけのとりあえず動く、でも、まあ何とか使える、中身ぐっちゃぐちゃでもいい、 というものでよければもう少し早くできると思います。 基本的に他のプログラム言語をできる人なら、構築スキルとしてはAccess初心者である、ということはあまり関係ありません。 ただ、「リレーショナルデータベース初心者」であるとちょっとしんどいです。 ちなみに、Accessを扱うなら、Excelなどできないほうがむしろいい。 Excel的な発想でやろうとする人は例外なくデータベース構築において挫折します。 僕も昔、Excelはほとんど知らない状況で、Accessにチャレンジして、バーコードPOSレジを作成し、日経BP社に日経IT21(廃刊)に1ページ分取材されたことがあります。 そのころの本業は婦人服販売店でした。 ですので「中身など美しくなくていい。動けば」、また 「短期間にすべてが完成しなくてもいい。1つ1つ、優先順位の高いものから完成させればいい」、ということなら冒頭の質問の機能は「Access初心者」でも可能です。 ただ、苦しむことにはなると思います。 特にマルチユーザーシステムとして作る場合、苦しむでしょう。 ラクではありません。 マルチユーザーの場合は、市販の書籍読んだくらいではすぐにはできるようにはなりません。スタンドアロンでも結構クロウしますけど。 Accessはコツを掴むと驚くほど簡単に小規模DBシステムが組めます。 小規模なものでそれほど複雑でなくていいなら、これ以上のソフトは無い、というくらい。 ExcelとCOMオートメーションなどで連携すると最強です。 本当に実感します。 VBやVC使うよりいい、ということでAccessの専門業者が居るくらいですから。 僕もそう実感します。 でもコツをつかむまでが大変です。変なエラーが出ることが結構ありますのでバグとの戦い、「仕様」との戦いになるでしょう。 (これはどんなソフトでも結局は一緒ですけど。Accessはオールインワンなので 結構扱いやすいし、レコード件数が50万件以下なら余裕でOKです。 もっとも高い効率を得られるのは、 Access+Excelピボット+Excelグラフのシステムだと思います。 Accessのレポートで表現しにくい部分をすばやく補えるので。 AccessよりもExcelがいいとか、その逆はありえません。 両方のよいとこどりをしたシステムが、例えば零細企業くらいの規模なら もっとも効率がよいです。) 僕はコツ(マルチユーザ利用における効率の良い各機能のコーディネイト方法や、意味不明のエラーを出さないように作る方法)を知っているので、手抜きしながら、でも、それなりに必要最小限の機能で動かすシステムを作ることができます。 (エラーも多少は出ますがあえてムリには、すぐにはつぶさない。ユーザーがガマンできるうちはユーザーにガマンさせてます。販売するわけじゃないですからね。) でも、初心者だと、回り道が多いですよね。どうしても。 僕も通ってきました。 ただ、時間をかければ「絶対にできます」 あきらめさえしなければ。 ちなみに僕がもしクライアント数20台くらいのマルチユーザーとしてで、冒頭のご質問のシステムを組むということになると、「適当なもので、多少のエラーは稼動後につぶしてくよ」という場合で、で、「仕事しながら」だったら、「最低1年くらいは見てほしい」、と言いますかね~。 >【教務関連】 >・学生の名簿管理 >・学生の成績管理 >・学生の情報管理 >・出欠管理 >・成績証明書を成績管理のデータベースから連動させて印刷できるようにする。 で、1、2ヶ月でしょうか マルチユーザーでシンプルなもので。 スタンドアロンなら2週間くらいかなあ。
お礼
回答者様の書いてくださっている内容がすでにチンプンカンプンです… それくらい、何もわからない状態、ということなのでしょうけれど… とにかく頑張ります。
- layy
- ベストアンサー率23% (292/1222)
あれもこれもやりたいことばかりあって 初心者としてははっきりいうと欲張り過ぎですね。 「・学生の名簿管理」 これだけでもいろんな機能が浮かびます。 学生の登録、修正、 学年繰越、クラス替え、転校 今あるのは「設計」と言われる部分の初期段階かと思います。 実際作り上げるまでには、 「テーブル設計」「画面設計」「機能設計」「コード設計」などあって プログラミングするときには 「クエリ」「フォーム」の設計、 印刷とか出来上がるもの「レポート」の設計もあります。 これを各機能についてそれぞれ検討します。 ざっと半年以上はかかる見込みです。やってやれなくもないです。 基本的に「設計段階」がきちんとできていれば、 「製造段階」以降スムーズに行きます。 今挙げてある機能について、 あーしたい、こーしたい、こんな項目が必要だろう、 思いつく点を(最終結果でなくて)とにかくいろいろ列挙します。 そういう作業から始めること。 一度にすべての機能のこと考えるのは大変ですが、 後からケタが少ないだとか項目が無いとかいうのはもっと大変です。 一般的な本では、テクニック機能的な面が主な説明です。 「学校向け」にはどんな作りをしたら?っていう特化したのは なかなか参考書にはありません。 在庫管理で例題があるけどこれを学校成績管理でどう活かせばいいのか、 そんなこと考えながら作ること。
- tamu1129
- ベストアンサー率58% (1294/2222)
無理では無いですよ 今はネットも普及してますし 私も独学で学び、以前勤めていた会社にそれなりの稼動するシステムを置いてきました 独学だとどうしてもクリア出来ない問題とかも出てくるのですが、自分でこうやって作った物が思いどうりに動かないというような場合ならば手助けしてくれるサイトもあります http://www7.big.or.jp/~pinball/ 上記のサイトは良くお世話になりました ○○したいんだけれど教えて~みたいな丸投げではなく、こうやったけれど結果はこうなってエラーが出るとか、自分が思っている結果にならないなど、自分でアクション起こしていると本当に親身に回答してくれます 今は参照出来なくなっているみたいですが、過去のログデータの中にも参考になる物沢山ありました データベースの作成で大切な事は、やりたい事はなんなのかという事ですからそれさえはっきりしているならば、頓挫する事無く作成出来ると思います
お礼
今はチンプンカンプンですが、それは「始めていない」こそのチンプンカンプンなのだと思いました。 勉強すれば「わからないところが何かわかる」けれど、勉強もしなければ「何がわからないのかわからない」。現在は後者です。 とにかく、本とネットをにらめっこして頑張ります。
- nicotinism
- ベストアンサー率70% (1019/1452)
誰でも最初は初心者なのですが、私の場合、最初の2ヶ月ぐらいはチンプンカンプンで 何度投げ出そうかと思いました。 でもAccessを買ってしまったので、なんとか元を取り返さないと! もう手書き書類は作成したくない! Excelで作成したファイル過去のデータを探しまくるのはヤダ! という強い(不順な)動機がありましたので、何とか乗り越えられました。 Excel的な?考え方も立ちはだかりました。 氏名 前期成績 後期成績 山田 甲 甲 佐藤 乙 甲 鈴木 丙 乙 田中 甲 丁 なんてのをExcelでは作成しますが、Accessでは 氏名 試験期 成績 山田 2010前 甲 山田 2010後 甲 佐藤 2010前 乙 佐藤 2010後 甲 のような感じ。(かなりいい加減) ↓データの正規化をどうぞ http://www.kogures.com/hitoshi/webtext/db-seikika/index.html 今は 一応ある程度の事は出来るようになったかな?と思っていますが テーブル設計がAccessの『肝』だと思います。 ここを疎かにして走り始めると、後でクエリやVBAでデータをこねくり回さないと 欲しいものが出てきにくくなります。 速度も遅くなり間違いも発生しやすくなります。多分再構築の羽目に陥るでしょう。 書籍で読んでも、退屈で面白く無い部分ですが テーブル設計は大事だと思います。 テーブル設計はその業務に精通した方で無いと分からないので Q/Aサイトで質問しても回答は得にくいかも知れません。 高校の学科に例えるとAccessは英語に近い感じがします。 歴史などはその年代の範囲を一夜漬けでも覚えれば何とかなりますが 英語はその教科書の範囲だけ丸暗記しても赤点になるかも。 部分部分のパズルを組み合わせて・・・とは行きません。 つまみ喰いで無い全般的な知識が必要とされてくるかと思います。 題材はシンプルのようなので、とりあえず、教務関連から進められてはいかがですか? 提示されたテーマを全て作成して、他の人が代わりに操作できる段階まで進むには 半年以上は確実に掛かりそうな気がします。 エラソウに言ってしまいましたが、 千里の道も一歩から、たゆまず歩けば到達します(あなたの根性しだいでは) ※個人情報の塊になりますので、くれぐれもくれぐれもお気をつけて! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ データの漏洩対策をいかに講じるかの方が大変。
お礼
ありがとうございます! 最初のテーブル設計が大切、ということですね… きちんと先を見越してからではないとダメということですね。 もうちょっときちんと頭の整理をしたいと思います。
- 1
- 2
お礼
わぁ!具体的でなんとなく想像できます! ありがとうございます。 このアドバイスを元に進めたいと思います。 ありがとうございました。