SQL Server は 2000、2005とも開発用に Developer Edition を購入していた。開発にしか使えないが、1万円を割る価格でSQL Server のフル機能を試せる。

しかし、そんなフル機能を使うシチュエーションって、ほとんどなかった。例えば、データの分析は別のソフト(SPSSとか)に渡したりしていたのでOLAPを使うわけでもなし。クラスタリングする訳でも無し。

最近仕事で クライアントには SQL Server 2008 R2 Express Edition をダウンロードして使っていたが、サーバーのデータベースに Management Studio (SQL Server 2008 R2 Express Edition に同梱)を使って操作できるなど、不便を感じなくなっている。
メモリが1Gまで、とか制約がある(ハードウェア的に、ではなく、SQL Server 側で制限しているので気にする必要はない)ものの、充分使える。マイクロソフトとしてはここから製品版に移すときにもシームレスに、という腹づもりなのだろうか。だとすると、私はそれにまんまと引っかかっていることになる。

Accessを使う場合でも、データベース部分は SQL Server 2008 R2 Express Edition とか真っ当なDBMSにする方がいい。
例えば処理速度。以前、Accessのデータベースに繰り返し処理のバッチ実行に3時間ほどかかる、とぼやいている人がいた。当時ではかなり高性能のマシンだった。そこでデータベースをSQL Server に移し、処理性能の悪いパソコンで試してみたら、処理時間が15分ほどに短縮された(ちょっと数字は記憶で曖昧)経験がある。これだけを取り上げてもメリットは大きいだろう。このパフォーマンス向上のためのソフトウェアが無料で入手できるのだ。

データベースソフト自体は敷居が高いかも知れないが、使いやすいツールもいろいろ付加されている。このあたりを勉強すればAccessからの脱皮の近道になるかも知れない。



これはVBAの問題ではなく、CPUとかの問題かも知れないが、こういう事象が起こっている。

Accessでログを作成し、そのログにはそのときのタイムスタンプを100分の1秒で、更に直前に出したログから何秒経ったかをこれまた100分の1秒で表示している。
タイムスタンプはTimer関数を使って取得している。この関数は0時からの時間を秒で表示する。小数部がミリ秒になる。よって、ミリ秒はFix関数で落とし、そこから時分秒に直している。
このTimer関数はSingleを返す。また、小数部のいらないゼロは省かれる。.10ではなく.1 .00ではなく、この場合は小数点すら省かれる。

さて、この小数点すら省かれた際に、その値をFixでLongへ入れた際に、数字が1小さくなることがたまにあるようなのだ。

 nTimer = Timer
 nTime = Fix(nTimer)

等とした場合、例えば nTimer が 84575 だとすると、こちらとしては nTime には 84575 を期待するが、84574 になることがある。Intでも同様である。
仕方ないので一度 String 型に変換してから小数点の有無を見て、という処理でごまかした。

何か根本的に間違ったことをしているのだろうか?ちょっとした謎である。
世の中、Copyツールといえばいくつか有名どころがある。例えばFastCopyはその名の通り速さが売りだ。コンピュータの内部構造などを考えたプログラミング技法を用いているのだろう。速いだけではなくパソコンの資源をあまり食わないように配慮されていたりと、なかなか優れモノらしい。

さて、そんな中、マイクロソフトのrichcopyというこれまた無料のソフトウェアを見つけた。設定を保存できたり、ファイルの同期を取ってくれたり、中でも重宝しそうなのがFTPサイトとも接続できるらしい。元々はマイクロソフトの社員(日本人)が作って社内で使っていたものらしい。

早速ダウンロードをしてインストール。実行すると起動画面がマイクロソフトらしくない感じ。どこのお姉さんだ?社員?
さて、早速FTP接続しようと[オプション]を押してみる。しかし、ヘルプと明らかに画面が違う。

私が表示している画面

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


ヘルプに表示されている画面

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


なんでやねん!と天を仰いでも仕方がない。どこかのブログでアドバンスドモードにしないと云々とあった。そう、デフォルトではベーシックモードだから出ないらしい。その切り替えはメニューバーの[表示]で行う。
※アドバンスドモードの情報元はここ 感謝:http://mcp-exam.paslog.jp/article/1138274.html 


$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


これでヘルプと同じように表示されるようにはなった。


確かにFTPサイトともつながり、Webサイト上に置いてはいるが公開していない自前ツールを仕事場へコピーすることができた。

コピー元もフォルダを細かく設定できるなど便利だ。ただ、あまり複雑にするとエラーが出た。そのあたりは運用でカバーするとしよう。外部サーバーにWebサイトを持っている私には重宝しそうだ。



[richcopyに関する紹介]
http://www.atmarkit.co.jp/fwin2k/win2ktips/1152richcopy/richcopy.html
http://technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx


[richcopyと他のコピーツールの比較]
http://netlog.jpn.org/r271-635/2009/08/_robocopy_richcopy_bunbackup.html
http://norimaki2000.blog48.fc2.com/blog-entry-781.html

[ダウンロード~開発者のブログページ]
http://blogs.technet.com/b/ken/archive/2009/06/12/4-0-216.aspx