ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[Visual Basic] vb 単精度浮動小数点型 と 倍精度浮動小数点型 の 比較

 
倍精度の値を代入した Variant 型の変数と、単精度の値と比較する際、
どうやら、Variant 型の変数 は、Single型にダウンキャストされるようだ。
以下は、Access 2000 のVBE でテスト。

Public Sub test()
    Dim d As Double
    Dim v As Variant
    Dim s As Single

    d = 1E-40
    v = 1E-40
    s = 9.999946E-41!

    Debug.Print TypeName(v) & vbCrLf

    Debug.Print d = v
    Debug.Print d = s
    Debug.Print v = s
    Debug.Print v = 9.999946E-41!
    Debug.Print v = 9.999946E-41

End Sub


結果(イミディエイ トウィンドウ)
Double


True d = v
False d = s
True v = s
True v = 9.999946E-41!
False v = 9.999946E-41

[Microsoft Access] Microsoft Access で、どのインデックスを使っているか、実行計画

 
Access でインデックスを定義したがいいが、いったいどのインデックスが使われているかを確認したかった。
調べたところ、MS-Access で実行計画が取れることがわかった。

次のようにレジストリを変更すると、MS-Access で実行計画を見ることが出来る。

以下、自己責任で。

  1. HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Jet¥4.0¥Engines にキー Debug を追加する。(Access 2007 のパスについては後述。)

  2. Debug の配下に次の文字列値を追加する。
    名前: JETSHOWPLAN
    値: ON




なお、実施前には必ずレジストリをバックアップすること。(XPは簡単)
文書番号:322756
Windows XP でレジストリをバックアップおよび復元する方法
http://support.microsoft.com/kb/322756/ja

出力結果については、

2008-03-06 ACCESS(MDB)の実行計画を見る方法
このようにすると、実行時にshowplan.outという名前のテキストファイルが作成され、以後、ここに実行計画が追記されてゆく。

このファイルが作成される場所はWindows2000ならJET実行時のカレントディレクトリ、XPならばユーザのマイドキュメントに置かれる。(Vistaは未確認)

http://d.hatena.ne.jp/seraphy/20080306


引用元のサイトでは、出力例が確認できる。

ところで 2007 ではレジストリのパスが次のように変わるらしい。
HKLM¥SOFTWARE¥Microsoft¥Office¥12.0¥Access¥Access Connectivity Engine¥Debug

詳細は次のサイトを参照のこと。

Access2000を操作するプログラムをAccess2007にバージョンアップ時にしなければならないことは?
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200809/08090018.txt

[Microsoft Access] Access で全角 半角 大文字 小文字 を区別する

 
次のサイトを参照。
バイナリ型フィールドを使用する方法
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsBinaryField.html

ここのサイトはおすすめ。
http://www.f3.dion.ne.jp/~element/msaccess/index.html
ほかに次のトピックが興味深かった。

(MS-Access で Windows API を使用せずに)
[ファイルを開く] ダイアログを表示する方法
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGetFileName.html