掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBからAccess2003のレポートプレビュー (ID:147622)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> まずは、ご教授ありがとうございました。 http://www.tt.rim.or.jp/~rudyard/torii009.html > msaccess.exe /ro "D:\Sdata.mdb" /pwd aaaa で実行してみたのですが /pwd に指定するのは、JET のユーザーレベルセキュリティのパスワードでしたね。 mdb 自体にかけられたパスワードの方を指定する場合は、 > OpenCurrentDatabase メソッドを利用しているかと思いますが、その > 第3引数にて、パスワードを指定することができます。 を用いてみてください。 たとえば、 Dim acc As Object = CreateObject("Access.Application") acc.Visible = True acc.OpenCurrentDatabase("C:\temp\test.mdb", , "aaaa") MsgBox("レポートを表示します") Dim doCmd As Object = acc.DoCmd Const acViewPreview As Integer = 2 doCmd.OpenReport("レポート1", acViewPreview) System.Runtime.InteropServices.Marshal.ReleaseComObject(doCmd) MsgBox("終了します") acc.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(acc) のような感じです。 ただし OpenCurrentDatabase は、パスワードの間違いを検出できません。 (間違っていた場合、パスワード入力画面が表示されます) パスワード指定の成否も検出したい場合は、DAO の OpenDatabase メソッドを併用します。 こちらの場合、間違わったパスワードの場合に例外が発生するため、それを Catch することで、パスワードの入力ミスを検出できます。 Dim acc As Object = CreateObject("Access.Application") acc.Visible = True Dim de As Object = acc.DBEngine Dim db As Object = de.OpenDatabase("C:\temp\test.mdb", False, False, ";PWD=aaaa") acc.OpencurrentDatabase("C:\temp\test.mdb") db.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(db) System.Runtime.InteropServices.Marshal.ReleaseComObject(de) MsgBox("レポートを表示します") Dim doCmd As Object = acc.DoCmd Const acViewPreview As Integer = 2 doCmd.OpenReport("レポート1", acViewPreview) System.Runtime.InteropServices.Marshal.ReleaseComObject(doCmd) MsgBox("終了します") acc.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(acc) もちろんパスワードが正しい場合は、OpencurrentDatabase だけで十分です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.