2011年7月27日水曜日

#023 Sample1-10 入力欄の仕上げ







作成手順書の32ページ~41ページを参照

入力欄の仕上げです
ラベル、テキストボックスをキッチリとくっつけて配置、
オプションボタンを作ります

内容は難しくないのですが、
操作の説明が4コマでは難しいので、詳しくは作成手順書を参照してください

ここまで作れれば、画面の見た目はキレイに整っているはずです

どんな画面でも、テキストの大きさ、背景色などルールをあわせれば、
同じように見栄えがいい画面を作れます

2011年7月20日水曜日

#022 Sample1-8 入力欄を作る




久々の更新です
本業が忙しく、更新が滞ってました


入力欄はテキストボックスを貼って並べるだけなので難しいことはないのですが
これも高さ、幅、色をそろえて、キッチリ配置することで見栄えをよくすることができます

作成手順書の20ページ~31ページを参照

2011年7月1日金曜日

#021 Sample1-7 画面のタイトル



機能的には全く関係ないのですが、画面の上部にタイトルを付けます

Accessに限らず、Windowsの画面は灰色が多いので、画面が暗くなりがちです
ユーザーへの説明という目的もありますが、見栄えをよくするのも兼ねています

ユーザーは見栄えが悪いと、使いにくいように感じてしまうものなので、
小さなことですが、こういった部分も忘れないように設定しましょう

作成手順書の20ページ~25ページを参照




この画面の上部、緑の背景、顧客情報の入力を行ってくださいの部分を設定しました

作成手順書、サンプルプログラムはここからダウンロードできます
http://accessaccess.gozaru.jp/

#020 Sample1-6 レコードソース



概観ができたら、次はフォームで使うテーブルを設定します

フォーム1つ設定できるテーブルは一つなのですが、
テーブル同士を結合して、他のテーブルの情報を使うことが(参照のみ)できます
これがAccessの良さを感じる機能です

複雑なプログラムを書かずに、テーブルにデータの追加、更新、削除ができるだけでなく、他のテーブルの情報と結合させておけば、コードを入力すると、自動的に該当する名前を表示させるということができます

これを設定する画面がクエリビルダです

作成手順書の13ページ~16ページの部分です
詳細は、作成手順書を参照してください

クエリビルダの使い方も詳しく書いています


Accessの専門書、入門書に多いのですがクエリを事前に作ってから
フォームを作るというやり方を紹介してあるものがあります

そのやり方では、クエリばかり増えて、後から修正が大変になります


できるだけクエリを作らず、フォームのレコードソースに直接設定することで、修正範囲をそのフォームだけで完結できるようにしておくことが、後々、画面が増えた時に修正を容易にします

昔、画面が200画面越えるシステムを、クエリを使って作った時、
クエリの数が300を越えました、、、 (--;;
どのクエリを修正すればどこに影響するか
これを修正したいけど、あそこに影響するし、、、
影響を考えると、自然とクエリばかりが増えて、修正の手間も比例して増えることに、、、


それ以来、クエリを使わずフォームを作るようにしました



作成手順書、サンプルプログラムはここからダウンロードできます
http://accessaccess.gozaru.jp/

2011年6月28日火曜日

#018 Sample1-4 フォームを作る前に




テーブルが出来たら、早速フォームを作る、、、前に、
フォームを作るのに便利なモジュールを先にインポートしておきます

モジュールの内容、使い方は後々説明しますが、
ここでは、フォームを作る前にインポートしておく
とだけ覚えておいてください

準備.mdbはAccess2000形式なので、2000以降のバージョンであれば使用できます
2003でも2010でも使えます


インポートの手順
1.作成しているデータベースをAccessで開く
2.メニュー [ファイル]-[外部データの取り込み]-[インポート]を選択
3.ファイルを選択するダイアログが表示されます
4.準備.mdbを選択
5.オブジェクトのインポート画面が表示されます
6.「モジュール」のタブを選択
7.modUtility を選択、[OK]をクリック

Access2010の場合は
リボンの「外部データ」タブのAccessを選択、
ファイル名に準備.mdbを選択、
現在のデータベースにテーブル、クエリー、フォーム、レポート、マクロ、モジュールをインポートするを選択
すると、オブジェクトのインポート画面が表示されます


サンプルはここからダウンロードできます
http://accessaccess.gozaru.jp/

2011年6月24日金曜日

#017 Sample1-3 テーブルを作る




※1



新規に空のデータベースを作成、次にテーブルを作ります

テーブル作成で重要なのは、漏れ、間違いを無くすことです
何度もチェックしましょう

テーブル名は tm01_Kokyaku とします

テーブルを作る上でのルールとして
・テーブルごとに記号+連番を付けて識別できるようにする
  tm + 01_ の部分(t = テーブルを表す、m=マスタを表す)
  _は見やすくするための区切りです

・項目名にもテーブル名の記号+連番をつける
  tm01_ の部分

・テーブル名、項目名は英数のみ使う

これらのルールは、フォームを作る時、VBAのコードを書くときのミスを減らすことにつながります
特にテーブルが多くなると、複雑になりミスも多くなるので、これらのルールを徹底することが重要です


具体例を挙げても、説明が難しいのですが

AccessではSQLでテーブルを複数結合できるのがメリットですが、
結合によって、同じ項目名が複数存在する場合があります

画面に表示させる項目を、マスタ側の項目を表示させるところを、日次入力側の項目を表示させたり
更新クエリーで日次入力側の項目を更新すべきところを、マスタ側を誤って更新してしまったり
ということがあります

そういったミスは、動かしてもエラーも無く動くので気付かないことが多いです


テーブルを作る段階から、こういったミスが無くすための工夫が、これらのルールです


(Sample1.docの1~5ページの部分)

#015 Sample1-1 完成のイメージ




以下のサイトで公開しているサンプルと同じものを作ります
http://accessaccess.gozaru.jp/


まずは、完成のイメージです。

Step1.作りたいものを考える

簡単な顧客管理として、名前、住所、電話番号などを入力を行います。
データが増えると探すのも大変なので、一覧画面も作ります。

 入力画面イメージ
 一覧画面イメージ


Step2.データとして入力する項目を考える(テーブルを考える)

顧客の名前、フリガナ、郵便番号、住所、電話番号、FAX番号、メールアドレス、性別、生年月日を入力するようにします

念のため、メモとして自由に入力できる備考を追加
郵便番号から住所を自動的にセットすることもできますが、今回は保留

会員ごとの連番を追加して、連番を主キー(プライマリキー)とします

ここでの注意事項は、
項目の漏れが無いか何度も確認することです


Step3.どんな画面が必要になるのか

入力画面、一覧画面が必要になります

画面はこれだけなので、メニュー画面などなく
システムを起動したら、最初に一覧画面を表示する形となります

システム起動
 ↓
一覧画面表示
 ↓
(新規入力・修正のクリック)
 ↓
入力画面表示

といった画面の流れです



テーブルがフォームを作り始める前に、
完成の形をしっかりイメージすることで、
どんなテーブル、どんなフォームを作ればいいのか考えやすくなります

初心者のうちから作りながら考えるというやり方をやってしまうと、
どこでつまづいたのか分からず、フォーム、VBAで大きく苦労することになります

これはシステムが簡単、複雑に限らず、同じように最初にやるべきことです


このサンプルの作り方を理解すると、
項目を追加、変更して、自分なりの入力画面、一覧画面を作れるようになります

2011年6月20日月曜日

#014 マクロを使わないと宣言




Accessで画面を作り始める前に、いくつか決めておくルールがあります
その一つが「マクロを使わない」です

Access本の多くは「マクロで簡単に!!」というタイトルで、マクロを使って簡単に画面を作っているものが紹介されていますが
いざ自分が試してみると、自分が思うような画面や印刷にならないと思います


VBAでコードを書く=難しい という印象があるからだと思いますが、出来上がったもので考えれば、VBAの方がよっぽど楽に作り上げることができます

マクロの組み合わせは、複雑になりがちで、
「あー VBAならこうやってできるのに、、、」と思うことばかりです


まずは、マクロに頼らず、VBAのコードを書いて画面を作るという宣言から始めましょう


とはいえ、
VBAのコードをたくさん書くという訳ではなく、
Accessは、データベースに特化したソフトなので、
上手に使えば、VBAのコードを多く書かずに画面を作ることができます

Accessの機能を上手に使って画面を作り、VBAのコードで自分なりの微調整をする
、という形となります

本格的にVBAなどのコードを書くのであれば、
あえてAccessを選択しなくてもいいので、
Accessには、Accessにあった作り方というものを、このブログで紹介していきます

#013 とにかく先に




4コマという制限では、なかなか話が先に進まないので、
とりあえず、動くものを作り上げることを優先させます

と言うわけで、
サンプルと同じ入力画面、検索画面を作ります

入力画面イメージ
検索画面イメージ


サンプルのダウンロードはこちら
http://accessaccess.gozaru.jp/

サンプルのプログラムだけでなく、
作り方をまとめた手順書もつけています
ダウンロードはご自由に


今後、ここの4コマ漫画では、
その手順書だけでは伝えにくい部分、つまづきやすい部分を説明しつつ、
手順書に沿った流れで画面を作っていきます


予定としては、今月末までに動くものを作り上げ、
ここで紹介できるようにしたいと思ってます

2011年6月17日金曜日

土日で目次らしきものを作ります

土日に、目次らしきものを作り、
どれくらいで完成できるか目安としてわかるものを考えます

2011年6月13日月曜日

#012 質問は




テーブルを始めて作ると、、、

テーブル[レシート]
売上日
商品1
金額1
商品2
金額2
商品3
金額3
商品4
金額4
小計
消費税
合計
お預かり
お釣り


こんなテーブルになると思います

最初は、この状態からスタートしますが、
これをAccessで管理しやすい正規化されたテーブルに徐々に整えていきます

この段階のテーブルでの問題は
・商品が5つ以上売れた時に入力できない


であれば、商品を20くらい入力できるように
商品1・・・ 商品19,商品20
金額1・・・ 金額19,金額20
とすればいいのか

という訳でもありません


こういう場合は、テーブルを分けます

これが親テーブル
 売上日
 小計
 消費税
 合計
 お預かり
 お釣り


こっちが子テーブル
 商品
 金額

となります
この形であれば、
いくつ商品を購入されても入力できます


重要なのは、親と子のデータがつながっていることです

このままでは、子のテーブルのデータを見たときに、
どの親のデータかわかりません

そこで、親のテーブルに連番をつけます
 レシート番号 ← これが連番
 売上日
 小計
 消費税
 合計
 お預かり
 お釣り


子のテーブルは、親の連番をテーブルに保存することで、
どの親のデータか特定できるようにします
 レシート番号 ← これは親を特定するために必要
 商品
 金額



ということで、まずはテーブルが2つに分かれます

親テーブルでのレシート番号は、
重複することが無い、そのデータを特定できるものとして、
プライマリキーと呼ばれます(Accessでは主キーとも呼ばれます)

[売上親テーブル]
レシート番号 [長整数] ※プライマリキー
売上日 [日付時刻]
小計 [通貨]
消費税 [通貨]
合計 [通貨]
点数 [整数]
お預かり [通貨]
お釣り[通貨]


[売上子テーブル]
レシート番号 [長整数]
商品 [文字列]
金額 [通貨]



レシートのデータは、以下のように登録されます








これから、何段階かに分けてテーブルを徐々に正規化していきます

2011年6月9日木曜日

#011 全てはテーブルだ-2

参考までに、レシートのイメージです
このレシートの内容をテーブルとして作成します

2011年6月3日金曜日

#011 全てはテーブルだ




アクセスはフォーム、レポート、VBA、クエリーと様々な機能が用意されていますが、
全てはテーブルが基本です

それらの機能は、テーブルのデータをどのように扱うか、というものなので、
元となるテーブルの作りがデタラメな時は、
フォームやレポートを作る時に相当苦労します


項目に漏れがないかチェックするのも重要ですが、
テーブルを作る時に最も重要なのは「正規化」です

これから数回にわたって正規化、テーブルを作るときのポイントを解説します。


とりあえず問題です

コンビニのレジで受け取るレシートを思い出してください
手元にあれば、それを見ても構いません

どういったテーブルを作れば、そのレシートに印刷するデータを作れるでしょうか?

コンビニの名前、住所などは無視してOKです

商品名、数量、金額、預かり、お釣り、日時、、、
これらをどのようなテーブルで作るかが問題です

2011年6月2日木曜日

#010 歌って踊れる?




どんなものを作りたいか
どんな画面で、どんな項目を入力するのか

考えるのも、紙に書き出すのも最初は大変だと思います

ただ、それが出来ないうちに画面を作り始めると、
考えもまとまっていないので、何を作るのか、どうすればいいのか右往左往、迷ってばかりです


フリガナはカタカナ? ひらがな?
電話番号は市外局番いる? いらない?
FAX番号は入力させる?
備考って1つで足りる?

時間がかかるかもしれませんが、
しっかりとイメージできるものを考えて、紙に書き出しましょう

#009 完成のイメージ




とりあえず、アクセスで作り初めて、フォームで思うように作れず挫折する人が多いです

アクセスの難しさは、きちんと設計して作らないと、
フォームで苦労するところにあります

※設計
どんな画面で入力するか
どんな印刷をするのか
どんなデータを保存するか
テーブルの内容はどんなものか
これらを決めることです


逆に考えれば、アクセス(データベース)の考え方にあった設計ができれば、
楽に作れるようになります


いきなりテーブルを作って、フォームを作り始める人の多くは、
テーブルの作り方が悪くて、余計なプログラムを書くことになってるんですよね

まずは、焦らずにどんなものを作りたいのか、
目的であったり、画面であったり、印刷であったり

完成のイメージを、より具体的に書き出しましょう


<目的・やりたいこと>
・エクセルでの入力が面倒だから、楽に入力できるように
・いくつも同じデータを入力しなくて済むように
・検索で簡単にデータを見つけられるように

<画面>
・入力画面
  こんな感じ、、、 手書きで書いてみるといいです
・検索画面
  こんな感じ、、、 手書きで書いてみるといいです


<印刷>
  こんな感じ、、、 これも手書きで書いてみるといいです



ビジネス書にも多く書いてありますが、
ゴールに到着するためには、ゴールを明確に具体的にイメージすることらしいです

アクセスも同じですね
初心者が手軽に作れるものではないので、ゴールをしっかりとイメージしましょう

#008 なるほど、これがAccess




Accessでデータを入力すると、
エクセルよりも入力は楽になります

例えば、フリガナを入力する項目では自動的にカタカナ入力になったり、
郵便番号を入力する項目では数字だけ入力すれば自動的にXXX-XXXXの形式で入力されたり

[Enter]キーで次々と項目を移動して入力できるのも小さなことですが重要です
[Enter]キーで止まらない項目も設定できるので、必要最低限のキー操作だけで入力できます

他にも、コンボボックス、リストボックスなどを使った選択など、
エクセルでもできないことはありませんが、
アクセスだと簡単に実現することができます


アクセスのいいところばかり、、、では誤解されますので、
エクセルとの違いとして

やはり手軽さという部分ではエクセルの方が優れています
アクセスでは、テーブルを作って、画面を作って、、、と手間隙かかりますが、
エクセルでは、画面に見たまま入力できます

重要なのは、
どちらが優れている、劣っているということではなく、
どちらも目的が違うソフトなので、その用途に応じて使い分けが必要ということになります

簡単な表や、名簿の作成程度であればエクセル
入力したデータを活用したい、集計、印刷、効率よく管理したいのであれば、アクセスとなります

エクセルで管理してきたけど、面倒だなぁ、、と感じたら、
アクセスにしてみよう、というくらいでいいと思います

2011年5月28日土曜日

#007 サンプルゲットだぜ!!




とりあえず、データベースって何?
アクセスって何ができるの?
というのが何となくわかったら、じっさいに動くものを見た方が早いです

※1
ここからアクセスのサンプルをダウンロードできます
http://www.formzu.net/fgen.ex?ID=P47085961

詳しくはこちら
http://accessaccess.gozaru.jp/



サンプルは、私が何年か前に作ったものです
これまでのダウンロード数は12万件を越えました m(__ )m感謝

作り方を手順書として付けてますが、
とりあえず動かしてみるだけで大丈夫です

「アクセスって、こんなことができるのかぁ」とイメージできれば、
自分がAccessで作りたいものも、徐々にイメージがハッキリしてくると思います

2011年5月27日金曜日

#006 くえりー?



誰しも最初につまずく障害がクエリーです
説明してある言葉も意味がわからないことが多いです

「データの問い合わせ」と説明してあることもありますが、
データベースの正規化すら理解していない状態では、
クエリーは理解できないと思います

とりあえず、動くものを作った方が理解が早いので、
クエリーは気にせずに進みましょう

#005 ようやくAccess



Accessは、
データを管理するデータベースだけでなく

入力画面を作ったり、
印刷レポートを作ったり

他にも便利な機能がいくつも用意されていて
これだけで顧客管理や売上管理のシステムを作ることができます

#004 何ができるの?



データベースを使えば、
エクセルで管理している面倒さを解決できます

売上を入力する場合でも、
商品をリストから選択したり、
数量を入力すると自動的に金額を計算して、
在庫が無ければ警告を出したり

月ごとに売上を集計したり、
売り上げの高い商品、低い商品を抽出したり

エクセルでも出来ないことはありませんが、
使い勝手の良さ、便利さは格段に違います


データという点では、エクセルに入力するものデータですが、
その入力をいかに楽にできるか、いかに楽に活用するか、
という便利さがデータベースにできることです

#003 本当に知らない?





Accessというより、まずはデータベースというものを理解する必要があります

Wordは文章を書くためのもの
Excelは表を作る、計算するためのもの

データベースは、それらのソフトとは違い、
データを扱うことを専門にしたソフトです

ExcelやWordだと、その顧客の住所が変わった時、
それらの全てを手作業でせっせと変更する必要がありますが、
データベースであれば、
顧客の住所を1箇所変更すれば、全て自動的に変更されます

他にも、データの集計を簡単に実現したり、印刷をしたり、
WordやExcelよりも、データを扱うということに関しては、
とても使いやすくなっています

#002 でーたべーす



まぁ、そんなもんです
データベースって言葉も知らない人の方が多いですし

#001 そういう時は





住所録や、売り上げなどは、エクセルで管理するのが手軽ですけど、
いづれ更新や集計に手間がかかってくるんですよね

4コマを通じて、
Accessの使い方、作り方、Accessの良さを紹介します