Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

prüfen ob SQL Server läuft via Excel VBA

Forumthread: prüfen ob SQL Server läuft via Excel VBA

prüfen ob SQL Server läuft via Excel VBA
05.12.2006 17:31:35
Iten
Hallo Excel Gemeinde,
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
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen ob SQL Server läuft via Excel VBA
05.12.2006 21:10:29
Stefan
Hallo Marcello,
Der folgende Code prueft ob ein MS SQL Server auf dem eigenen Rechner laeuft.
Zur Abfrage des SQL Managers musst Du "sqlservr.exe" mit "sqlmangr.exe" ersetzen.

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

Schoene Gruesse
Stefan
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

SQL Server mit Excel VBA prüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob der SQL Server läuft, benötigst Du einen einfachen VBA-Code. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Projekt-Explorer mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm) und wähle Einfügen > Modul.

  3. 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
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. 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.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler '70': Berechtigung verweigert"

    • Lösung: Stelle sicher, dass Du Excel mit Administratorrechten ausführst. Rechtsklicke auf die Excel-Verknüpfung und wähle "Als Administrator ausführen".
  • Fehler: Es wird keine Meldung angezeigt.

    • Lösung: Überprüfe, ob der SQL Server tatsächlich installiert ist und unter dem richtigen Namen (sqlservr.exe) läuft.

Alternative Methoden

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.


Praktische Beispiele

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

Tipps für Profis

  • Verwende immer On Error Resume Next in Deinen SQL-Verbindungen, um Fehler abzufangen und die Ausführung nicht zu unterbrechen.
  • Teste Deine Verbindung vor dem Ausführen von SQL-Befehlen, um sicherzustellen, dass der vba connection string sql server korrekt ist.
  • Halte Deinen Excel VBA-Code sauber und gut kommentiert, um die Wartung und das Debugging zu erleichtern.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige