Verbindung SQL-Server mit Excel-VBA

Edbaer

Neuer Benutzer
Beiträge
1
Guten Morgen, ich bin neu und bitte aufgrund folgenden konkreten Problems um Hilfe.

Ich habe diverse Excel-Tools mit VBA programmiert, welche die für die Tools notwendigen Daten aus einer SQL-DB lesen oder in sie schreiben. Die Verbindung klappte über Jahre mit folgendem Code ohne Probleme:

'---------------------------------------------------------------------------------------------------------------------------------------------
' Konstanten
'-----------------------------------------------------------------------
Public c_str_Database As String 'Name DB
Public c_str_Provider As String 'Name Provider
Public c_str_Server As String 'Name Server
c_str_Provider = "SQLOLEDB"
c_str_Server = "XXX" 'Server
c_str_Database = "YYY" 'DB-Name

'---------------------------------------------------------------------------------------------------------------------------------------------
' Funktion für SELECT aus der DB
Public Function db_connect_select(sqlStr As String) As Variant
'------------------------- Erläuterung Parameter --------------------
'sqlStr = SQL-String
'------------------------- Variablendeklaration --------------------
Dim objAdoConnect As Object
Dim objAdoRecordset As Object
Dim connStr As String 'Connection-String
Dim x As Integer
'------------------------- Erzeugung des Connection-String --------------------
connStr = "Provider= " & c_str_Provider & "; Data Source = " & c_str_Server & ";" & " Initial Catalog = " & c_str_Database & ";"
connStr = connStr & "Trusted_Connection=Yes"
'------------------------- DB-Verbindungsaufbau --------------------
Set objAdoConnect = CreateObject("ADODB.CONNECTION")
objAdoConnect.Open connStr
Set objAdoRecordset = CreateObject("ADODB.recordset")
With objAdoRecordset
.Source = sqlStr
.ActiveConnection = objAdoConnect
.Open
End With
'------------------------- Auslesen Daten aus Recordset in das Funktions-Array --------------------
p_boo_DatenGefunden = False
If objAdoRecordset.BOF = False Then
objAdoRecordset.MoveFirst
db_connect_select = objAdoRecordset.GetRows
Else
p_boo_DatenGefunden = True
End If
'------------------------- Verbindung schließen --------------------
objAdoRecordset.Close
objAdoConnect.Close
Set objAdoRecordset = Nothing
Set objAdoConnect = Nothing
End Function

Seit einigen Tagen bekomme ich folgende Fehlermeldung an der rot markierten Stelle:
[DBNETLIB][ConnectionOpen (SECDoClientHandshake()).]SSL Sicherheitsfehler

Weiß jemand, woran das liegen kann? Gibt es vielleicht andere/neuer Möglichkeiten der Verbindung?

Danke und viele Grüße
 
Werbung:
Entweder um das Zertifikat kümmern (von einer vertrauenswürdigen CA beziehen und auf dem SQL Server einspielen oder das selbst-signierte auf dem Client vertrauen) oder das SSL Zertifikat ignorieren (nicht die beste Möglichkeit, k.a. wie das mit VBA geht, in der Gui (SSMS) gibt es einen entsprechenden Knopf dafür).

EDIT: Es geht via Connection String:
TrustServerCertificate
 
Zurück
Oben