Datenbank Infos (conn.open) zentral
16.12.2022 13:25:52
Rainer
Ich bastle öfters mal an SQL-Datenbankabfragen in Excel via VBA-Makros und bin jetzt aber an einer Stelle, wo ich nicht weiter komme.
Meine Abfragen sind immer wie folgt aufgebaut und funktionieren auch einwandfrei.:
Dim conn As New Connection, rec As New Recordset
Dim comm As New Command
Dim sql$, i&, lauf
'DB öffnen
conn.Open "Provider=MSDASQL.1;Driver=SQL Server;Server=*Servername*;Initial Catalog=Datenbank;UID=UserID;PWD=Passwort;"
Set comm.ActiveConnection = conn
Abfrage
comm.CommandText = "SELECT FROM dbo.[*Mandant*$Tabelle] "
rec.Open comm
rec.Close
'DB schließen
conn.Close
Jetzt habe ich jedoch sehr viele UserForms in deren Codes eine solche Abfrage eingebaut ist. Auch das funktioniert bisher.
Es ist jetzt aber nun sehr umständlich, mein Tool auf eine andere Datenbank und einen anderen Mandanten umzuziehen. Z.B. Auf das Testsystem.
Wie kann ich denn Servername und Mandant 1x zentral hinterlegen (z.B. in als Variable), dass ich es von allen Codes / Makros aus nutzen kann?
Ich habe den gesamten String nach conn.Open schon versucht als Variable zCon zu definieren, d.h. zCon = "Provider=MSDASQL.1;Driver=SQL Server;Server=*Servername*;Initial Catalog=Datenbank;UID=UserID;PWD=Passwort;" aber ohne Erfolg. Mir ist auch nicht ganz klar, ob ich das in ein Objekt, Formular oder Moduls schreiben muss.
Daher wäre eine detaillierte Beschreibung sehr hilfreich.
Danke im Voraus.
Gruß - Rainer