2016-11-23 31 views
0

VBAではなくAccessを使用してデータベースに接続できます。 Accessでは、サーバー名、Windows NT統合セキュリティー、およびデータベース名を使用します。 VBAでは、接続文字列で変数名と値のさまざまなバリエーションを試しましたが、db.Openコマンドは常に失敗します。私は一般的に、インストール可能なISAMを見つけることができないというエラー、または複数ステップのOLE DB操作でエラーが発生するというエラーが表示されます。実際のAccess接続から接続文字列として使用できるものを特定する方法はありますか?後者のエラーで失敗するコードの例:VBAからDBに接続できませんが、Accessから接続することはできません。

Dim db As Object 
Dim adoRS As Object 
Set db = CreateObject("ADODB.Connection") 
Set adoRS = CreateObject("ADODB.recordset") 
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
"Server=sql03;" & _ 
"Database=db1;" & _ 
"Integrated Security=SSPI;" 
+0

あなたが接続しているデータベースのどのような種類の*に*? – Comintern

+1

https://www.connectionstrings.com/ –

答えて

0

接続文字列で使用しているプロバイダは、MS Access用です。 正しいデータベースである場合は、次の操作を行います。 はrefrence「のMicrosoft Office 14.0 Accessデータベースエンジンオブジェクトライブラリを追加します。

Dim cnString, query As String 
Dim rs As New ADODB.Recordset 

'If older version of MS access then try Provider=Microsoft.Jet.OLEDB.4.0;' 

cnSTring= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<Path>;Jet OLEDB:Database Password=<Pass>;" 
query = "SELECT * FROM TABLE"  
rs.Open query, cnString, adOpenStatic, adLockOptimistic 
関連する問題