毎年、宛名書きは手書きであったが、今年はExceで年賀状の宛名印刷をしようと思う。


出力先をWordかExcelか、元データはExcelかAccessか、などの悩み所はあるが、手書きとは決別だ。




ついでにサンプルを載せていこうと思う。完成したらダウンロードもできるようにしようかな。




が、あまり当てにしないように。いつも年末年始はなぜか忙しく、面倒くさくて手書きにしているからだ。




じゃあこれはやめて、確定申告お助けツールを・・、いや!いかん!こっちの方が面倒だぞ。




ということで、


・住所録を入れる


・出さないところフラグを立てる


・宛名を印刷する(縦書き/横書き) ※プリンタによりずれるので微調整はお願いします


くらいの「宛名管理ソフト」を作ることにする。






一般的にSQL文はデータ操作を記載することが多いが、管理者は当然テーブルやビュー、インデックス等の定義ができる。そういう定義系のSQLを特にDDLという。










Accessのシステムにパッチ当て用テーブルを作り、終わったらテーブルごと消す、というような一連の作業を漏れなくVBAで行いたいがために、AccessでDDLを使ってテーブルを作成できないかな?と試したところ、DAOを使ってできた。当然ADO等でもできるだろうし、直接もできるだろう。






ふだんSQL Serverを使うので「同じMicrosoftだから」そちらのSQL文と似せていたがNG。もっとシンプルであった。データ型についての説明などもヘルプにないみたいなので、手持ちの参考資料でなんとか乗り切れた。英語版のAccessならそういう問題もクリアされるのだろう。










これでいちいち七面倒くさい設定から解放されるかと思うと有り難い。が、もう少し深く学んでから展開する。

外部データベースにアクセスするにはDAOとADOがある。他にもあるが、私が使っている代表例として・・。










以前はDAOばかり使っていたが、ここしばらくはADOを使っている。



データベースアクセスのパフォーマンスなどの理由ではなく、メンテナンス付加を軽減するためである。






使ったことのある方ならご存知だろうけれど、DAOはODBCの設定が必要であるが、ADOはODBCの設定が不要である。現在のシステムは企業内のWAN内で利用するもので、社内的にセキュリティや利用制限を付加しなくてはならないものではないので、システムを内包したExcelをコピーすれば使える。いちおうIDとパスワードはあるが、共通である。






グループウェア的な利用なのでこれでよし、としているが、システム監査、情報セキュリティ監査の観点からすると望ましくないかもしれない。監査証跡もDB任せなので残っていないに等しいし・・。










もし、勝手にコピーされて使われるとまずいなら、DAOを使うという選択肢もあるだろう。














さて、現在携わっているシステムであるが、企業内WANだけではなく、WANに参加していない外部の企業からの接続も求められはじめている。最初は地理的に隣接しているのでルーターの設定次第では接続は可能らしいが、もしどちらかが転居したらNGである。






WebサーバーとやりとりするVBAで、などというのを作る必要性があるのかもしれない。HTMLテキストをHTTP、HTTPSともに受信をしたことはあるので、XML化してデータへのアクセスを簡単にしようか、などと考えてはいる。まあ、もう少し先の話だろう。










※書き直し /八月末削除予定 /DBアクセス