Gibt es einen VBA Befehl der prüft, ob der "MS SQL Server" (Service Manager) läuft oder ausgeschalten ist?
Bin für jeden VBA Fetzen dankbar.
Schönen Abend
Marcello
Sub SQLServerTest()
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process", , 48)
For Each objItem In colItems
If objItem.Caption = "sqlservr.exe" Then
MsgBox "SQL Server laeuft"
Exit Sub
End If
Next
End Sub
Um zu prüfen, ob der SQL Server läuft, benötigst Du einen einfachen VBA-Code. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke im Projekt-Explorer mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm) und wähle Einfügen > Modul.
Kopiere den folgenden VBA-Code in das Modul:
Sub SQLServerTest()
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process", , 48)
For Each objItem In colItems
If objItem.Caption = "sqlservr.exe" Then
MsgBox "SQL Server läuft"
Exit Sub
End If
Next
MsgBox "SQL Server läuft nicht"
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus, indem Du erneut ALT + F8 drückst und SQLServerTest auswählst.
Dieser Code prüft, ob der SQL Server-Dienst (sqlservr.exe) aktiv ist und zeigt eine entsprechende Meldung an.
Fehler: "Laufzeitfehler '70': Berechtigung verweigert"
Fehler: Es wird keine Meldung angezeigt.
sqlservr.exe) läuft.Eine andere Möglichkeit, den SQL Server zu überprüfen, ist die Verwendung von ADO (ActiveX Data Objects). Hier ist ein Beispiel, wie Du dies tun kannst:
Sub CheckSQLServer()
On Error Resume Next
Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=dein_server;Initial Catalog=deine_datenbank;Integrated Security=SSPI;"
If conn.State = 1 Then
MsgBox "Verbindung zum SQL Server erfolgreich"
Else
MsgBox "Kann keine Verbindung zum SQL Server herstellen"
End If
conn.Close
Set conn = Nothing
End Sub
Stelle sicher, dass Du den Data Source und Initial Catalog mit Deinen Server- und Datenbanknamen ersetzt.
Wenn Du den SQL Server nicht nur überprüfen, sondern auch Daten abrufen möchtest, kannst Du den folgenden Code verwenden, um zu prüfen, ob ein bestimmter Datensatz vorhanden ist:
Sub CheckRecordExists()
Dim conn As Object
Dim rs As Object
Dim strSQL As String
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=dein_server;Initial Catalog=deine_datenbank;Integrated Security=SSPI;"
strSQL = "SELECT COUNT(*) FROM deine_tabelle WHERE deine_spalte = 'dein_wert'"
Set rs = conn.Execute(strSQL)
If rs.Fields(0).Value > 0 Then
MsgBox "Datensatz ist vorhanden"
Else
MsgBox "Datensatz ist nicht vorhanden"
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
On Error Resume Next in Deinen SQL-Verbindungen, um Fehler abzufangen und die Ausführung nicht zu unterbrechen.vba connection string sql server korrekt ist.1. Frage: Wie überprüfe ich, ob der SQL Server auf einem anderen Computer läuft?
Antwort: Ändere den strComputer-Wert im Code auf den Namen des Zielcomputers oder dessen IP-Adresse.
2. Frage: Was ist der Unterschied zwischen sqlservr.exe und sqlmangr.exe?
Antwort: sqlservr.exe ist der Hauptprozess des SQL Server-Dienstes, während sqlmangr.exe der SQL Server Service Manager ist. Verwende sqlservr.exe, um den Dienststatus zu überprüfen.