2016-11-23 4 views
0

Ich kann mit Access eine Verbindung herstellen, aber nicht mit VBA. In Access verwende ich den Servernamen, Windows NT Integrated Security und den Datenbanknamen. In VBA habe ich viele Varianten von Variablennamen und Werten in der Verbindungszeichenfolge ausprobiert, und der Befehl db.Open schlägt immer fehl. In der Regel wird ein Fehler ausgegeben, wenn ein installierbares ISAM nicht gefunden werden kann oder bei einem mehrstufigen OLE DB-Vorgang Fehler generiert wurden. Gibt es eine Möglichkeit zu bestimmen, was ich als eine Verbindungszeichenfolge von der funktionierenden Access-Verbindung verwenden kann? Ein Beispiel für Code, der mit dem letzteren Fehler fehlschlägt:Verbindung mit DB über VBA nicht möglich, aber Verbindung über Zugriff möglich

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

Welche Art von Datenbank verbinden Sie * bis *? – Comintern

+1

https://www.connectionstrings.com/ –

Antwort

0

Der Anbieter, den Sie in der Verbindungszeichenfolge verwenden, ist für MS Access. Wenn das die richtige Datenbank ist dann folgendes tun. Fügen Sie den refrence „Microsoft Office 14.0 Access-Datenbank-Engine-Objektbibliothek.

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 
Verwandte Themen