パスワード設定したmdbにVBからアクセスするには

解決


春こまち  2006-03-18 15:35:31  No: 94637

初歩的なことで大変恐縮です。
過去の質問や書籍等で調べたのですが、どうしても具体的な解決に至りませんでしたので質問させていただきました。
VB6、ACCESS2000、接続はJetOLEDB4.0 です。
排他的でパスワードをかけたmdbファイルをVBで開くとき、★印の部分の最後に記述をしたいpassword = "userpass"のつなげかたが分かりません。エラーは「パスワードが正しくありません」や「コンパイルエラー」が返ってきます。
よろしくお願いします。
---------------------------------------
Option Explicit

'MDBにアクセスするための情報定義
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
        (ByVal hwndParent As Long, _
         ByVal fRequest As Long, _
         ByVal lpszDriver As String, _
         ByVal lpszAttributes As String) As Long

Public objAdo_Con         As New ADODB.Connection
Public objAdo_Cmd         As New ADODB.Command
Public objAdo_Rs          As New ADODB.Recordset

Public objInetExp As Object

Public sql, server_ip, server, current_db
Dim k
-------------------------------------------
Public Sub initDB()
'データベースを使用できるようにする
    objAdo_Con.Mode = adModeShareDenyNone
  ★objAdo_Con.Open PROVIDER & DATASOURCE & App.Path & "\" & DATABASE
    objAdo_Cmd.ActiveConnection = objAdo_Con
    Set objAdo_Rs.ActiveConnection = objAdo_Con
End Sub

----------------------------------------------


もげ  2006-03-20 17:58:36  No: 94638

以下の要領で。
Jet OLEDB:Database Password=yourpassword;


春こまち  2006-03-21 07:53:08  No: 94639

もげ様ありがとうございます。
アドバイスをもとに、★行末にセミコロンを付し、そのあとに追加をしてみましたが、コンパイルエラー  構文エラーになってしまいます。
objAdo_Con.Open PROVIDER & DATASOURCE & App.Path & "\" & DATABASE;
Jet OLEDB:DATABASE Password="yourpassword"
・・・とそのままつなげるだけでは、うまくいかないようです。
どう記述すれば良いでしょうか?基本的な質問ですみません。


もげ  2006-03-22 17:57:15  No: 94640

文字列の連結の仕方がおかしいのでしょう。
PROVIDERとかDATASOURCEにどんな文字列が入っているか不明ですが、

Dim cnn   As NewADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"DataSource=C:\nwind.mdb;Jet OLEDB:Database Password=password;"
のようになればいいでしょう。

貴殿の場合は、
Dim strCon As String
strCon = PROVIDER & DATASOURCE & App.Path & "\" & DATABASE
MsgBox strCon
objAdo_Con.Open strCon

のようにして、接続文字列に何が渡っているか確認すれば
理解が早いかもしれません。

strCon = PROVIDER & DATASOURCE & App.Path & "\" & DATABASE
strCon = strCon & ";" 
strCon = strCon & "Jet OLEDB:DATABASE Password=" & "あなたのパスワード"
strCon = strCon & ";"
 
'最後のセミコロンは要らないかもしれませんが。


春こまち  2006-03-23 06:28:14  No: 94641

もげ様、ご丁寧な解説ありがとうございました。ご指摘の通り文字列の連結の仕方がまずかったようです。MsgBox で確認をしながらやってみましたところ、無事うまくいきました。最後のセミコロンはつけたままでも大丈夫でした。ご教授感謝いたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加