« 世の中は三連休らしい | トップページ | シーズンオフ真っ直中 »

Access愛用中

DBクライアントを作るとなると、結構遭遇率の高いのがクロス集計です。
まともな(正規化された)テーブルであれば、例えば

商品番号|年月日|売上個数
123-456|2006/1/9|23
123-456|2006/2/4|14

みたいに格納されているわけですが、月ごとに売上個数を集計せよと言われると、

商品番号|1年|2月|……
123-456 |23|14|

という表示を強いられ、ビューで対応する場合はこちらのように少々面倒な命令(SQL)が必要となります。なんか昨年末に私も作ったような気が。
……私の場合は、「正規化されていない(古い)テーブルに合わせたビューを作ってくれ」と言われた訳ですが。orz

で、その時思ったのが、「社内利用だったらなあ」ということ。

M$社はAccessというクライアントDBのOfficeソフトを作っていまして、これが案外小回りが効くのです。
前述のクロス集計はお手の物ですし、UIを司るフォームも結構簡単かつ多機能。ビューもUnionなどSQL直打ち設定もできますし、テーブル自体に値リストを設定したコンボボックスの設定などが可能。マクロやVBAを使えば各種機能やAPIもたたけますし、ODBCやリンク機能でSQLServerやExcelなどとのリンクやインポート/エクスポートも簡単。もちろん、そのリンク自体を参照したビューも作れます。
通常はmdbファイル一つなので、インストーラーも不要。必要なデータだけ格納し、あとはODBCにすれば、ファイルサイズも、まあ、それほど気にしなくても(汗)。

しかし、いかんせん不安定(笑)。昔のバージョンみたいにファイル破壊で再起不能になる悲しい経験は無くなりました(そう、昔は悲しみにくれたものです)が、それでも時折お亡くなりになる。その際、バックアップを取るよう促された後勝手に自動修復するのですが、そのバックアップが1日に4つも5つもできた日には。。。
……しかし、これをC/SのDBクライアント「製品」として納入した会社があると噂では聞いたことがあるのですが、運用はどうしているのでしょう?

ということで、私は専ら、テストや開発支援でAccessを使っています。

よく使うのが、DTS(2000)やODBCによるSQLServerからのデータ吸い上げですね。
テーブルを一括して、ついでに型定義もあわせて吸い上げられるので便利です。が、その調子でお気楽に「Access→(DTS)→SQLServer」をすると、ドツボにはまりますので注意が必要です(^^;)。

で、そのテーブルデータを元に、SQLを作るビューを作っておくのがマイブームです。
例えばAccess上のビューで

select "update 売上テーブル set 売上個数="& [売上個数] & " where 商品番号='" & [商品番号] "' and 年月日='"& [年月日] &"'" as "--更新SQL"

って感じで作っておくと、ビューを表示するだけで

-- 更新SQL
update 売上テーブル set 売上個数=23 where 商品番号='123-456' and 年月日='2006/1/9'
update 売上テーブル set 売上個数=14 where 商品番号='123-456' and 年月日='2006/2/4'

ってな感じのSQLが完成。あとはクエリアナライザ等で実行するだけです。もちろん、insertやdelete、selectなどにも応用可能。
Access上のテーブルデータをいじってやれば、テストデータも簡単に作れますから、テスト時も結構重宝します。(戻すためのSQLは、いじる前のもので作れます)
もちろんSQLServer上にビューを作っても良いのですが、環境の違いやUIとかテストデータ作成方法とか面倒なことを考えずに済みますし、Accessファイル自体を履歴として残しておけば、テスト履歴も兼ねられるので、私はこちらが好きですね。

あとはデータ検証とか、Excelの変態ファイルのロードあたりでしょうか。
あ、変態ファイルって言葉が悪いですね。パスワードをかけてあったり、セル内を連結とかしてくれているようなExcelファイルです。お客さんからもらうファイルなどだと、たまにあるんですよね。変えてくれとも言いにくいし。
そんなときに、VBA&マクロでちょっと工夫してやれば、UI一発でインポートできます。

まあ、こんな使い方をする人もいるということで。

|

« 世の中は三連休らしい | トップページ | シーズンオフ真っ直中 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/92399/13876306

この記事へのトラックバック一覧です: Access愛用中:

« 世の中は三連休らしい | トップページ | シーズンオフ真っ直中 »