从VBA连接到SSMS ide窗口

时间:2015-05-04 19:10:27

标签: sql-server vba ms-access sql-server-2012 ms-access-2010

我试图在 SQL Server Management Studio 中打开SQL窗口以显示所使用的SQL语句(这是为了允许人们直接修改语句)

我不想发表声明,我已经可以这样做了。

我可以轻松地开始一个新流程:(当前代码)

Public Sub ShowSQL(strSQL As String)

Dim TempSQL As String
Dim FileNum As Long

strSQL = Replace(strSQL, ",", "," & vbCrLf)

TempSQL = Get_Temp_File_Name
FileNum = FreeFile()
Open TempSQL For Output As #FileNum
Print #FileNum, strSQL
Close #FileNum

Shell "ssms " & TempSQL

End Sub

但我不知道如何判断SSMS是否已经打开 对于Excel,我知道我可以使用GetObject(, "Excel.Application") - 什么是SSMS的等价物?

(来自previous questionShell "explorer " & TempSQL1打开当前实例中的文件,但如果没有打开SSMS实例则会失败)

1 个答案:

答案 0 :(得分:1)

您可以使用以下函数来确定您的计算机上当前是否正在运行management studio(ssms.exe):

Function IsProcessRunning(ProcessName As String) As Boolean
    Dim Process, strObject
    strObject = "winmgmts://" & Environ("ComputerName")
    For Each Process In GetObject(strObject).InstancesOf("win32_process")
        If UCase(Process.Name) = UCase(ProcessName) Then
             IsProcessRunning = True
             Exit Function
        End If
    Next
    IsProcessRunning = False
End Function 
代码中的

写:

if Not IsProcessRunning("ssms.exe") Then Shell "ssms " & TempSQL