独立したい人、2代目零細経営者、SOHO、個人事業主、営業さん、事務員さん、派遣社員さん、学生さん、のためのパソコン活用・独学・支援サイト
   「小規模オフィスでのパソコン活用・独学の超絶基本」  PIVOT×PIVOT LABO


Excel2000で30分で作るバーコードPOSレジのコア部分(定型集計効率化サンプル)ダウンロード

Excelの真の基礎

●設計前に「設計上」知って(本当は)おかねばならないこと。   ※テキストファイル版はこちら
(設計に関係することで)
以下のことを知らないとAccessでは設計ができない。

・できること/できないこと
・システムと販促などとのからめ方(販促などのシステムへの落とし込み)
・用語(用語は最初にすべて教えるやり方じゃなくて、
説明しながら関連箇所へのリンクを設定するだけのほうがいいかもいれない。
そのほうがケースバイケースでの説明ができるかも。)
・Accessの裏セオリー

・できること/できないこと
★一般的なリレーショナルデータベースソフトでできること
実表
・どんな機能か?何ができるのか?
実データの入力、レコードの追加、編集、削除、など。
・利用シーン
・メリット/デメリット

仮想表
・どんな機能か?何ができるのか?
Excelのセル参照計算式のようなこと(実データを直接いじらずに計算結果、関数戻り値などを表示、等)
条件別のレコードの抽出、集計、など。
・利用シーン
・メリット/デメリット

SQL
・どんな機能か?何ができるのか?
・利用シーン
・メリット/デメリット
・方言
DDL、DML
リレーション
・どんな機能か?何ができるのか?
・利用シーン
・メリット/デメリット
参照制約
・どんな機能か?何ができるのか?
・利用シーン
・メリット/デメリット
ERダイヤグラム、ER図
レコードのロック機能
トランザクション
トリガ
・どんな機能か?何ができるのか?
・利用シーン
・メリット/デメリット
ストアドプロシージャ
レプリケーション
・どんな機能か?何ができるのか?
負荷分散
基幹系システムと情報系システムに分離したいとき
・利用シーン
・メリット/デメリット
バックアップスケジューリング
ログ機能
ログファイル、
ログレコード
アクセスログ
アクセス者のログ

復旧対策機能
障害回復
ユーザーレベルセキュリティ

アクセス者のログ
代理者アクセスを禁止する
クライアント画面のキャプチャログ
コピー操作ログ
外部メディアへのコピーの原則禁止
などが必要。
これらをすべて管理者しか設定変更できないようにする。

データ保全
データ共有
データ独立

Webブラウザインターフェイス連携

2層アーキテクチャ
3層アーキテクチャ

★そのうち、Accessでどこまでができるか
実表
仮想表
SQL
DDL、DML
リレーション
参照制約
ERダイヤグラム、ER図
レコードのロック機能
トランザクション
トリガ
ストアドプロシージャ
レプリケーション
バックアップスケジューリング

ログ機能
復旧対策機能
ユーザーレベルセキュリティ
Webブラウザインターフェイス連携

2層アーキテクチャ
3層アーキテクチャ


・システムと販促などとのからめ方(販促などのシステムへの落とし込み)


-------(特に以下のことを知らないとAccessでは設計ができないです。)------------


これらの知識がないと
「最初に教えてくれよ。無駄なWeb検索やプログラム書きをいっぱいしちゃったじゃないか!」とか、
「パーツ化して、例えば最初の完成(稼動)の後でも作り変えしやすいように作る方法がわからない。」
という事態に陥ります。

この部分は、例えばVBやPHP、ASPなどをインターフェイスにしてデータベース作成を行なう
プロの方であっても事情は同じです。
Accessには、そういった方々からみると、「おかしい」、妙なクセがあります。
(以下に挙げたような事に関連するクセ)

逆に言うと、そういった、しっかりした方々でも、ソコをきちんと見ないと、
多分Accessを使いこなせずに「Accessはダメソフト、クソソフト」
と勝手に決め付け、誤判断をしてしまうと思います。

で、Accessに対して「ダメソフト、クソソフト」といった決め付け、
あるいは誤判断をしてしまうと何が起こるかといいますと・・・。

実は、零細企業においては、Access+Excelのシステム形体が、
「最も各種集計の色んな問題を解決できる、その第一(筆頭)候補」であります。
また、
「Access+Excel以上のことができる零細用のシステムを探してもなかなか見つからない」
のが現状です。
もちろんAccess+Excelが100%カンペキなわけではありませんが、
大体の機能を使ってみれば、例えば、VBやVC、ブラウザ(PHP等)などで
プログラム(インターフェイス等)を作るよりも、
Access+Excelで作ったほうが
はるかに効率がよいケースが多いことに気づくと思います。
(事実、
「中小・零細専門のデータベースシステムを組むことに限定してなら、
VBよりAccessのほうが断然、効率がいい。食わず嫌いだった。」と
Accessの良さを認めるマイクロソフトとなじみの深い
システム開発会社さんもあります。)

これは、Access+Excelをベースにしてシステムを作れば、
「Accessではできないこと」だけを VBやVCなどで、
DLLやOCXの形で作って連携させればいいので、
その分、効率よくプログラムが作成できることを意味します。
(あくまでも「零細では・・・」ですが。)

しかし、Accessを「ダメソフト、クソソフト」最初にと決め付けてしまうと、
その恩恵にあずかることができません。

結果、「他のソフト」、または「他の複数のソフトの組み合わせ」を選択してしまい、
Access+Excelでやれば比較的短時間におこなえることを、
その3倍も5倍も、時には10倍以上も時間をかけて処理する羽目になります。
しかも動作速度が遅くなったり、データが一覧できなかったりすることもあります。
作った本人だけしかメンテができないシステムになったりもします。
(その人が辞めるか異動してしまったらもう終わり・・・、というような)

また、零細の場合は、
「こんな程度の話だったらAccess+Excelでやれば、1日で作れるのにね」
というケースも結構多いです。

最後には、右往左往、もしくは立ち往生してしまうことになります。

Accessのことを何も分からないうちに、
また、メリット・デメリットきちんと(深く)知ろうとしないうちに
Accessに対しての判断をして他のソフトに流れてしまうわけですから、
当然といえば当然の結果なのですが…。

仮に、どうしても他のソフトを使いたい場合でも、
「Accessでできること、できないこと」を知ってからでも遅くはありません。
それらを多少でも勉強してから、そちらのを使うほうが、
零細の場合は良いと思います。
Accessはいろんなデータベースソフトとも連携ができるようにできているからです。
サブシステムやミニツール、サンプルシステムを作るのにはもってこいです。


だからAccessの裏セオリーとか、各種の連携技を最初にきちんと知っておくことは
非常に重要です。

ちなみにこれは、
「プロで、どんな高度な資格を持っている人でも、
零細の現場で役に立たない可能性が高い」
という話にもつながります。
(もちろん素人であっても同じです。)
資格があってもAccessの裏セオリーやクセを知らないと
Accessを使いこなせないわけですから…。

裏をかえせば、
「Access+Excelシステムでは、資格があまり役に立たない。
実戦(実践・これまでの実経験)重視になる。」
ということでもあります。

どんなプロでも、零細においては、
「Accessについて何も知らないとドツボにハマることになる・・・」、
「役に立たない可能性がある」、ということです。




★Accessでその他にできること全般

スタンドアロン、簡易クライアント/サーバ両方

フォームの見せ方の切り替えの容易さ(トリガもどきなど)
参照設定(自作/他作のDLLやOCX、mdbに書いた汎用VBAコード、汎用フォームなど)
API連携
COMオートメーション(mdb同士の連携、Excelとの連携)
帳票作成・カスタマイズ
ピボットテーブル作成(mdb、Excel)
ユーザーレベルセキュリティ以外のセキュリティ
VBEの操作
送り状印刷
他のデータベースソフトとの連携
ODBC
SQL Server
MySQL
オラクル など。

★Accessの裏セオリー

▼スタンドアロン(オールインワン、データ/プログラム分割)、簡易クライアント/サーバ両方

・インストール
インストール方法について
(サービスパック、バージョンの共存、標準とカスタム、など。)

・OSのレジストリ設定
画像表示などに関するレジストリ設定やその他のレジストリ設定
一度に処理できるレコード件数などについてのレジストリ設定
(置換やExcelへのレコードのコピペ時、など)

・mdbファイルの初期設定
「名前の自動修正機能」の害悪と、OFF
閉じるときに最適化/修復をする。
ロックの設定
ハイパーリンク型データのパス生成の設定
各種DLL、OCX、の参照設定

・メール送信やFTPプログラムの作成と参照設定
BASP21.DLL

・mdb分割
メモリ容量、LAN速度、VPN、処理速度
mdbを分けることと、メリット/デメリット メモリ容量やメンテ
mdb分割 とは?
一時テーブル、リンクテーブル、
データ専用、プログラム専用ファイルへの分割
データ専用ファイルをさらに分割
プログラムファイルもさらに分割
参照整合性についての制約事項

・テーブル作成
オブジェクトやコントロール、テーブルのフィールドなどの名づけ規則

・動作速度低下防止
テーブルを速く動かすためのTips
クライアントサーバ時のダミーテーブル

クエリの動作を速度を低下させないためのTips
showplan関数など

・SQLの扱い
クエリとSQLについて
DDL、DML
VBAコードにSQLを書くもっとも簡単な方法(SQLのコピペ)
シングルクォーテーションとダブルクォーテーション
クエリデザインでの、シングルクォーテーションとダブルクォーテーション

・フォーム作成
連結フォームと非連結フォームのメリット・デメリット
データシート、帳票フォーム、単票フォーム、切り替えの楽なフォームの作成方法
1枚のフォームで、ウィザードのような複数ページの対話型のフォームを作る方法
サブフォームでReQueryしてもカレントが先頭に行ってしまわないよにうにする方法
2つ

・主キーの取得方法
誰かが書いた値が他のPCに反映されるまで(他のPCで取得できるまで)にかかる秒数
クライアントサーバ、ローカル(スタンドアロン)
スタンドアロン、クライアントサーバ
専用テーブルで管理(3秒以上間隔がない)
一時テーブルを使用(3秒以上間隔がない)
何もしない(スタンドアロン:3秒以上間隔がある)


・右クリックメニューの作成と複数のフォームや複数のmdb間での流用
(右クリックメニューのインポート)
2003まで。2007以降はできなくなりました。

・レポート作成
バーコード作成、印刷、バーコードリーダの選び方、など。
レポートのプログラミングの基本
ピボットテーブルでの代用とそのメリット
(レポートで帳票を作ることに固執しない)

・セキュリティ
ユーザーレベルセキュリティとExcel(ピボット等)連携について
できることできないこと
セキュリティ設定をしたはずが、「Excelから見えてしまう」ケースについて
VBAでのテーブルの非可視化
(オプションの「隠しオブジェクト」設定では簡単な操作で見えてしまうので)
F11キーのOFF
Shiftキー+Wクリックのファイルオープンを無効にする。有効を切り替える。
データベースパスワード
自作パスワード
暗号化


・VBAプログラムの作成
VBAコードでの、コントロールやオブジェクトの参照の仕方
(ダブルクォーテーションで囲んでからカッコで囲む方法が基本。)
コントロール配列もどき
オブジェクト変数の使い道
クラスモジュール
汎用コードを書きやすくするための基礎
関数の使用可能場所
クエリ
標準モジュールのプロシージャ
クラスモジュール
イミディエイト
関数のCall、イベントプロシージャのCall
(イミディエイトや他のイベントからのCall、)
イミディエイトで正常動作しなくても、実際に動かすと正常に動くケースについて
Errorルーチンの書き方(On Error など)
VBAコードの行番号

・mdb連携、xls連携
ExcelからもAccessからも使えるDLLの作成
COMオートメーションでサブフォームのイベントプロシージャを実行させる方法
ピボットテーブルのVBAでの自動作表
グラフのVBAでの自動作成

・バックアップや保全
ファイルの肥大化と最適化/修復
昨日までのデータのバックアップと当日データの自動吸い込み(自動バックアップ)



▼簡易クライアント/サーバのみ

クライアントサーバ形式で破損しないようにするための作り方
ダミーテーブルとAutoExecマクロ
ダミーテーブル:閉じる時の速度低下解消方法について
Oplockのレジストリ設定
連結フォームと一時テーブル
テーブルへの予備フィールドの追加作成

一時テーブルの使用方法(ローカルへのリンクテーブル・肥大化)
ストアドプロシージャが無いメリット、デメリット
VPNとストアドプロシージャ、など。


OWCの使用、データアクセスページの使用
外部からWebブラウザ経由でmdbなどにアクセスする方法