会社では煩雑な業務を簡略化するため沢山のExcelマクロが動いていますが
グループ間や拠点間でデータを共有する場合にExcelなどのアプリケーションに
データを入力してあるとちょっと面倒だったりします。
最初に躓くのは多分「同じファイルを同時に開いて編集できない」って部分。
それをブックの共有で乗り切っても、とある人がデータを更新して
そのブックを保存せずに開きっぱなしで放置されると他のユーザーが困ります。
社内では業者の組んだ基幹システムが別に動いていますが
Excelを使ってそれらをMS Query経由で引っ張り加工する分には
何の問題も無いのですが、そこに新しいデータベースを差し込む余地は無いわけで
(無いというか普通は弄ったりしない)
じゃあ社内用にDBを作ったらいいのではないかと考え、
無料版であるSQLServerExpressを導入してみました。
1.会社で余ってるPCにSQLExpressとSQL Server Management Studio Expressをインストール
2.SQL Server Management Studio Expressを使ってデータベースを作る
(Accessをやったことがあれば簡単)
3.Excelのマクロで次のコードを使ってSQLからデータを引っ張る
(Excel付属のMS Queryで読み込んでもいい)
SQLServerに接続@Excelマクロ・VBAのお勉強
http://www.cocoaliz.com/excelVBA/index/10/
4.データがExcelのシートに格納されるので引用して使う
はい、これだけ。
データの追加/削除/更新はcn.Executeに続く文をそれぞれ
INSERT/DELETE/UPDATEに変えてあげるだけ。
それからExpress版にはインポート機能がないので、既にあるデータを
新しいDBに読み込みたい場合はExcelのマクロでINSERTしてあげないといけません。
そこだけ注意。
ただそれらの書式はインターネットで調べたら簡単に見つかるし、
しっかりお勉強したい!って人はリファレンスを買ったらいいのです。
私が買ったのはこれ。
【改訂第3版】 SQLポケットリファレンス (POCKET REFERENCE) [単行本(ソフトカバー)]
http://www.amazon.co.jp/%E3%80%90%E6%94%B9%E8%A8%82%E7%AC%AC3%E7%89%88%E3%80%91-SQL%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-POCKET-REFERENCE-%E6%9C%9D%E4%BA%95/dp/4774138355
いやー本当に凄く便利になったんですよ。
ほーんのちょっとDBをかじるだけでこんなに劇的に変わるとは・・・
ちなみにDBサイズが4GBまでとかCPUが1個までとか色々制限があるので
ちょっと入れてみようかなと思う方はこの辺を読んでみてください。
はじめて覚えるSQL Server 2005 Express Edition
http://thinkit.co.jp/free/article/0603/9/1/
Microsoft SQL Server
http://www.microsoft.com/japan/sqlserver/2005/editions/express/default.mspx