- 締切済み
ExcelVBAからAccessにアクセスする
ExcelVBAからパスワード付きAccessにアクセスする ExcelVBAからADOでAccessに次のようにしてアクセスしています。 Dim Cnn As ADODB.Connection Set Cnn = New ADODB.Connection Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス Cnn.Open パスワード付きのmdbにアクセスするのはどのようにしたらよろしいでしょうか?
- takuma_18
- お礼率69% (27/39)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
チクッとテスト用関数を作成すると接続確認ってのができます。 ? CNNTest("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\DB9.mdb;Jet OLEDB:Database Password=xxxx;") True Public Function CNNTest(ByVal strCNNString As String) As Boolean On Error GoTo Err_CNNTest Dim isNotOK As Boolean Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection With cnn .ConnectionString = strCNNString .Open End With Exit_CNNTest: CNNTest = Not isNotOK Exit Function Err_CNNTest: isNotOK = True Resume Exit_CNNTest End Function
- redfox63
- ベストアンサー率71% (1325/1856)
MDBにパスワードをつけた場合 JET OLDDB:Database Password でMDBに設定したパスワードをConnectionStringの中に追加しましょう パスワードが"abc123"の場合 Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス & ";" & _ "JET OLEDB:Database Password=" & "abc123;" といった具合になります
お礼
ありがとうございました。出来ました。
関連するQ&A
- ADO1とADO2は意味は同じですか?
Private Sub ADO1() Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub Private Sub ADO2() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub は、 Dim cn As ADODB.Connection Set cn = New ADODB.Connection を簡素化したものが Dim cn As New ADODB.Connection になるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- VB6.0とaccessのDBを接続する
初めまして。 件名のようなことを実行する際、 以下のソースを参考にしようと思ったのですが、 ******************************************* Dim cn As New ADODB.Connection Dim rc As New ADODB.Recordset ' 接続を確立する cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\My Documents\db1.mdb;" ' テーブル名を指定してレコードセットを作成する rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic ************************************* > cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > "Data Source=C:\My Documents\db1.mdb;" この部分の接続文字はどのようにしたら取得できるのでしょうか? SQLserverのときは、コンポーネントから Microsoft ADO Data Control 6.0(AP4)(OLEDB) を追加し、プロパティでOLE DBプロバイダを選択して接続文字を取得したのですが、accessに繋ぐのは初めてで、わかりません。 どなたか宜しくお願いいたします!!
- ベストアンサー
- Visual Basic
- VB6からAccess2000のテーブル使用
今、VB6からAccess2000のテーブルを参照、変更する処理を作っています。 で、データが20MB(最適化済)くらいになり、コネクションを確立するのに時間がかかります。 何か処理が早くなる方法は無いでしょうか? Public cnn_MASTER As New ADODB.Connection 'コネクション Public rec_MASTER As New ADODB.Recordset 'レコードセット SUB mdb_syori() MY_PATH = app.path MDB_MASTER = "\AA.mdb" TBL_MASTER = "Table1" 'ここの処理が遅い cnn_MASTER.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & MY_PATH & "\DATA" & MDB_MASTER & ";" sqlCODE = "SELECT * from " & TBL_MASTER rec_MASTER.Open sqlCODE, cnn_MASTER, adOpenKeyset, adLockOptimistic ・ ・ ・
- ベストアンサー
- Visual Basic
- Excel VBA について教えて下さい
Excel VBA でAccess接続します 今までは Sub aaa() Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub のように使っていましたが(単一プロシージャ) Set cn = CreateObject("ADODB.Connection") の部分をパブリックにして Sub bbb() cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub 別のプロシージャからも、使えるためには パブリックにするための方法を教えて下さい
- ベストアンサー
- Excel(エクセル)
- 【VB】データグリッドコントロールにデータベースを表示させたい
お世話になります。 フォーム上にMicrosoft DataGrid Control 6.0(OLEDB)を置いて、 データベースと接続し、データベースを表示させたいのですが、 データベースエンジンがMicrosoft.Jet.OLEDB3.51だとうまく表示してくれますが 4.0だとなぜか表示してくれません。 原因、対策などわかるでしょうか? ソースは以下のように単純なものです。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\パスワード管理.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open "パスワード", cn, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = rs End Sub
- ベストアンサー
- Visual Basic
- エクセル側からアクセスへデータ転送
エクセル側からアクセスにデータ転送する時に Sub Data_Add() Dim db As New ADODB.Connection Dim Rs As New ADODB.Recordset db.Open _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\Users\Owner\Desktop\1.mdb;" アクセス2003にデータを転送する場合はこれでうまくいきましたが、 アクセス2007にデータを転送しようと、 \1.accdb;"とすると、データベースの形式を認識できません。となってしまいます。 どうしたらいいでしょうか? だれか教えて頂けませんか?
- 締切済み
- オフィス系ソフト
- エクセルからアクセスにADO PWエラー
エクセルからアクセスにADOで接続したいのですが アクセスのファイルにはパスワードがかかっていて、 そのパスワードを指定して開こうとしてるのですが パスワードが違います、と言うエラーになります。 でもパスワードは確実に合っています。 構文がおかしのでしょうか? cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" & _ "C:\PW.accdb;" & _ "Jet OLEDB:Database Password=0000;" パスワードがあっててもエラーになることはありますか? ファイルのパスをでたらめに変えたら違うエラーが発生したので、ファイルのパスもあっています。
- ベストアンサー
- オフィス系ソフト
- Access VBA について
Access2000 をXPで動かしています。 全く別のフォルダーに入れている ABC.mdb を使って、 \Seikyu というフォルダーにある 請求sys.mdb の テーブル「銀行マスター」から銀行名等を取りだそう としています。 Dim DB As ADODB.Connection Set DB = New ADODB.Connection DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Program Files\Seikyu\請求sys.mdb;" Set RS = New ADODB.Recordset RS.Open "銀行マスター", DB, adOpenKeyset, adLockOptimistic Me.T1 = RS!ID Me.T2 = RS!銀行名 Me.T3 = RS!口座 RS.Close DB.Close こうすると、 実行時エラー '3709': このコンテキストで閉じられているかあるいは無効です のエラーが表示されます。 どこが間違いなのでしょうか。
- ベストアンサー
- その他MS Office製品
- 実行時エラー'-2147467259(80004005)':
エクセルからADOでアクセスに繋ごうとしたときに 実行時エラー'-2147467259(80004005)': マシン'マシン名'のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。 というエラーが出てしまいます。 書いているコードは以下です。 Public cn As ADOdb.Connection Set cn = New ADOdb.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb" test.mdb自体はテーブルもクエリもフォームも何も開いていない状態です。 一度アクセスを終了させて再起動させればうまくできるのですが、何が原因でこのメッセージが出るのでしょうか? もしわかれば教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBからAccessへの接続でエラー
OS:Win2K SP4 SOFT:VB6 ACCESS2K Dim strDatabase As String Dim cn As Object Dim rs As Object Sub xx() Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") strDatabase = "C:\出荷配送システム\mftbc.mdb" cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strDatabase ・ ・ ・ End Sub 上記ソースの「cn.OPEN」メソッドでエラーが発生します。 エラー内容は 'OPEN'メソッドは失敗しました。'_Connection'オブジェクト データベースに接続できません。 です。 何が原因なんでしょうか?? mdbのあるPath,File名は合っています。
- ベストアンサー
- Visual Basic
お礼
ありがとうございました