2010年7月21日水曜日

[VBA]ワークシート上に置いたDTPickerコントロールの表示崩れ対策

理由あって、会社のPC上でExcel VBAでマクロを組むことになりました。

日付入力で「Microsoft Date and Time Picker Controll 6.0」(DTPicker)を使って、簡単にちょいちょいと作ろうとしたところ(※1)、起動時に奇怪な現象が発生。

(1)該当の.xlsファイルを起動する。
(2)DTPickerの中に赤い「×」が一瞬表示され、設定したサイズとは大きく異なる矩形に変形。
(3)デザインモードにすると設定したサイズで表示しなおされるが、デザインモードを終了すると矩形に戻る。
(4)一応、設定した日付は表示されている。
(5)スクロールしたりして、再描画が走ると設定したサイズで表示される。


何これ?
Google先生に聞いてみるも、あまり発生している人はいないのかこれという解決策は見当たらず。

(5)でシートの再描画が行われると正常に表示されることから、Bookオープン時に強制再描画を行うことで無理やり解決しました。
一瞬、「×」が見えるのがいただけませんが・・・。


※1:会社のPCはVisual StudioのライセンスがあるのでActiveX利用で問題ないかな、ということでAPI呼び出しは見送り。

2010年7月8日木曜日

Jarファイル実行時にClassNotFoundException

eclipseで実行可能なJar形式でJarファイルを作成。
ダブルクリックで実行したら

ClassNotFoundException

・・・。

java -classpath sample.jar com.sample.test.Sample
java -classpath [jarファイル名] [メインクラス名]

でやってもダメでした。
外部ライブラリを抽出してみても、パッケージにしてみてもダメ。
最終的にはJarファイルの隣のフォルダにライブラリをまとめて入れておいて、

java -classpath [jarファイル名] [メインクラス名]

で動きました。
ライブラリのクラスパスがおかしかったってことかしら・・・。
これだとダブルクリックではClassNotFoundになってしまうので、バッチファイルで上のjava実行コマンドを発行して実行してもらうことにしました。

ついでにJarファイルの実行パスをプログラムで取りたかったのですが、結構面倒そうなので、バッチファイルでJarファイルのあるフォルダをカレントディレクトリにして、

System.getProperty("user.dir");

で取ることにしました。
バッチ叩いてもらえないと何も動きません(ぉぃ)

SQLServer2005でバックアップファイルから復元する方法

sqlcmdコマンドを使って

sqlcmd -U [ユーザ名] -P [パスワード] -S [マシン名]\[インスタンス名]

でログインします。
その後に、

RESTORE DATABASE [データベース名] TO DISK = 'バックアップファイルのフルパス'
WITH RECOVERY, REPLACE
GO

で復元できるはず!

・・・できなかったので Management Studio の

新規クエリ > 「master」データベース

にして、上の「RESTORE〜」を書いて実行!
これで復元できました。

参考にさせていただいたサイト
http://infotech.fmfamily.net/modules/blog/details.php?bid=70&date=201003