tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVBでAccessを起動したい。
記事No6782
投稿日: 2008/01/09(Wed) 20:25
投稿者かけだし
いつも大変参考にさせていただいております。

この度は、検索ワードが悪いのか、該当する過去レスが見つからなかったので、
質問させてください。

 VB.NET(2003)から、Access2003を起動したいのですが、Accessファイルには
データーベースパスワードが付いています。セキリティーの関係でパスワードを
外したくないのですが、VB.NETから起動する際に毎回パスワードを入力するのは
不便なので、これを回避する方法があればと思い質問させていただいております。

パスワードが付いてないAccessファイルは
Process.Start(C:\test.mde)
で実行できたのですが、これにパスワードを付けるコマンドラインはわかりません
でした。

理解できてないので、質問等おかしな部分があるかもしれませんが、
どうかよろしくお願いします。

[ツリー表示へ]
タイトルRe: VBでAccessを起動したい。
記事No6784
投稿日: 2008/01/09(Wed) 22:47
投稿者魔界の仮面弁士
> Process.Start(C:\test.mde)
Process.Start("C:\test.mde") ですよね。


> これにパスワードを付けるコマンドラインはわかりませんでした。
データベース パスワードの指定方法はありません。

一応、msaccess.exe に /pwd オプションというのがありますが、
これは データベース パスワードの指定ではなく、ユーザ別パスワードの指定です。


回避策としては、データベースではなく、ユーザパスワードに切り替えるか、
下記のように、OpenCurrentDatabase メソッドによる指定に切り替えるか、ですね。


Dim o As Object = Nothing
Try
 o = CreateObject("Access.Application")
 o.Visible = True
 o.OpenCurrentDatabase("c:\test.mde", , "abcd")
Finally
 If o IsNot Nothing Then
  System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
 End If
End Try
' http://support.microsoft.com/kb/317113/


ただし、「CreateObject」を使った上記の方法は、Access の開発環境のみでの
動作となります。Access ランタイムの場合には使えないハズなので要注意。
http://www.naboki.net/access/heaven/heaven_01.html

[ツリー表示へ]
タイトルRe^2: VBでAccessを起動したい。
記事No6785
投稿日: 2008/01/10(Thu) 08:32
投稿者かけだし
早速の回答ありがとうございます。
やっぱりデーターベースパスワードは無理だったんですね。
検索に引っかからないわけですね。

ユーザーパスワードに切り替えることができるか検討して、
無理なようなら、OpenCurrentDatabase メソッドで対応し
ようと思います。
 少し時間がかかるかもしれませんが、また結果を報告さ
せていただきます。ありがとうございます。

[ツリー表示へ]
タイトルRe^3: VBでAccessを起動したい。
記事No6811
投稿日: 2008/01/11(Fri) 18:58
投稿者かけだし
。遅くなりましたが、結果を報告させていただきます。
ユーザーパスワードを最初に試したのですが、VB側にユーザーの認識、
パスワードの保持するのも、一度はパスワードを入れるはめになり、
おかしなことになりだしたので、OpenCurrentDatabaseで対応させる
こととしました。ありがとうございました。

[ツリー表示へ]