HERBERS Excel-Forum - das Archiv

Thema: VBA Verbindung zu Microsoft sql server

VBA Verbindung zu Microsoft sql server
Timm
Guten Abend,

mein Ziel ist es eine Verbindung zu einer Microsoft sql server Express 2022 Datenbank aufzubauen.

Die folgende Verweis sind aktiviert:
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ActiveX Data Objects Recordsets 2.8 Library

Ich bin auf folgende Codeansätze gestoßen:



Sub SQL_Verbindung()
Dim con As New ADODB.Connection
Dim rec As New ADODB.Recordset
Dim comm As New ADODB.Command
Dim SQL_Comm As String

Dim sqlconn As String
Dim server_name As String, database_name As String

server_name = "XXXX\SQL_DATENBANK"
database_name = "Personen"

'Version 1
sqlconn = "Provider=SQLOLEDB;" & " Data Source = server_name;" & "Initial Catalog= database_name;" & "Integrated Security=True;"

Set con = New ADODB.Connection
con.Open sqlconn

'Version 2
sqlconn = "Provider = SQLOLEDB; Server= " & server_name & ";database=" & database_name & "; Integraded Security= True"
con.Open sqlconn

SQL_comm = "INSERT INTO Tabellenblattname()"-->SQL INSERT Befehl

rec.Open SQL_Comm, con
Comm.CommandText = SQL_comm

rec.Close
con.Close


Zur Providerangabe habe ich auch noch folgendes gefunden:
SQLNCLI11

Welche Angabe ist hier beim Provider richtig?
Ich nutzt die Windows-Authentifizierung, welche Angabe ist hier die richtige bei Integraded Security? SSPI oder True?

Bei Version 1 erhalte ich folgende Fehlermeldung:
Laufzeitfehler '2147217887(80040e21)'
Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet.

Bei Version 2 erhalte ich folgende Fehlermeldung:
Laufzeitfehler '2147217843(80040e4d)'
Ungültige Autorisierungsangabe

Bin mal gespannt wo mein Fehler liegt.

Danke euch vorab.

Gruß
Timm
AW: VBA Verbindung zu Microsoft sql server
ralf_b
version ist dahingehend falsch weil du die Variablen nicht als Variable verwendest, sondern nur deren Namen in den Text einfügst.
außerdem müssen wahrscheinlich die Texte aus den Variablen noch in Hochkomma gesetzt werden.
Hier ein paar Beispiele.
https://learn.microsoft.com/de-de/office/client-developer/access/desktop-database-reference/ado-code-examples-in-microsoft-visual-basic
AW: VBA Verbindung zu Microsoft sql server
Timm
Hallo Ralf,
hallo zusammen

erstmal vielen Dank für deinen Hilfeversuch.

Was meinst du mit ich verwende die Variable als Variable?

Habe es auch, wie folgt, mit Hochkomma versucht:



sqlconn = "Provider ='SQLOLEDB';Server='XXXX\SQL_DATENBANK';database='Personen';Integrated Security = 'True';"


Fehlermeldung wie gehabt:
Laufzeitfehler '2147217887(80040e21)'
Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet.

Was muss den bei Integraded Security hin True oder SSPI ?

Ist mein Connection String überhaupt richtig?

Gruß
Timm





AW: VBA Verbindung zu Microsoft sql server
Timm
Hallo zusammen,

niemand eine Idee?

Gruß
Timm