【发布时间】:2015-07-14 07:24:12
【问题描述】:
我正在尝试在 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 question,Shell "explorer " & TempSQL1在当前实例中打开文件,但如果没有SSMS实例打开则失败)
【问题讨论】:
-
你到底为什么要尝试使用 VBA 打开 SSMS?这只是在尖叫很多坏事......
-
我有一个访问 SQL 数据库的前端。一些用户表示有兴趣获取所使用的 SQL。我想在正确的程序中打开文件作为对用户的好处,而不是将其发送到 word/notepad/whatever。
-
但为了实现这一点,您必须在用户计算机上安装 SSMS。为什么用户首先需要 sql?如果他们没有查看 sql 的权限,通常有一个很好的理由,那是因为用户没有业务查看,或者更糟糕的是修改来自应用程序的任何 sql。
-
大多数都有,因为它是公司安装的标准部分。他们有权编写自己的 SQL 语句,并以他们认为的任何方式加入。有些不打扰,只使用前端。有些人喜欢前端结果,但希望查看底层查询以便编辑它,或者了解数据的来源以编写自己的查询。
-
如果这只是供用户查看和修改,你不能在你的 VBA 中创建一个文本框,将查询放在那里,用户完成修改并在必要时运行查询试图控制 SSMS?
标签: sql-server vba ms-access sql-server-2012 ms-access-2010