ハードなソフトの話

アクセスカウンタ

zoom RSS 64ビット版WindowsのPowerShellでJet.OLEDB のエラー

<<   作成日時 : 2013/10/02 00:16   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

PowerShell を使ってMicrosoft Access 2003形式のMDBファイルを作成した場合:

$filename = "C:\Users\Public\Documents\t.mdb"
$cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$filename"
$cat = New-Object -ComObject "ADOX.Catalog"
$db = $cat.Create($cnstr)
$db.Close()

64ビット版のWindowsだと下記のエラーが出力される:

"1" 個の引数を指定して "Create" を呼び出し中に例外が発生しました: "クラスが登録されていません"

このエラーは、64ビット版環境にMicrosoft.Jet.OLEDB 4.0 が存在しないため発生する。

こんなときは、スタートボタンから下記のメニューをたどって、32ビット版のPowerShellで実行する

スタート>すべてのプログラム>アクセサリ>Windows PowerShell>Windows PowerShell(x86)

image

32ビット版環境でMicrosoft.Jet.OLEDB がインストールされていれば、問題なく動作する。

Microsoft.Ace.OLEDBを使用してMicrosoft Access 2007以降のaccdbファイルを作成する場合は、どちらの環境でも問題ない。

ちなみにプログラムは下記のようになる:

$filename = "C:\Users\Public\Documents\t.accdb"
$cnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$filename"
$cat = New-Object -ComObject "ADOX.Catalog"
$db = $cat.Create($cnstr)
$db.Close()

 

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
64ビット版WindowsのPowerShellでJet.OLEDB のエラー ハードなソフトの話/BIGLOBEウェブリブログ
文字サイズ:       閉じる