一些财务软件安装的SQL版本是SQLEXPRESS,连接语句必须是 IP\SQLEXPRESS 或者是 计算机名\SQLEXPRESS,又或者****是**.\SQLEXPRESS**。这样写才能连接,这就要判断数据库版本了。
方法一:利用SQL的注册表键判断,优点是速度快,缺点是不一定准确。
Sub 注册表法判断是否为SQLEXPRESS() '注册表法判断是否为SQLEXPRESS
On Error Resume Next
Set ws = CreateObject("wscript.shell")
'指定SQLEXPRESS键是否存在
k = ws.regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\")
If Err.Number = -2147024894 Then '返回错误时
MsgBox "本机SQL版本:不是SQLEXPRESS"
aa = 1
Else
MsgBox "本机SQL版本是SQLEXPRESS"
End If
s = ws.regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLServer")
If Err.Number = -2147024894 Then
MsgBox "本机SQL版本:不是Standard"
bb = 1
End If
'如果两个键都没检测到,则认为没安装SQL
If aa + bb = 2 Then MsgBox "未检测到SQL数据库,请核实"
End Sub
方法二:利用语句错误进行判断,优点是比较稳妥,缺点是卡顿。
Sub ssql() '判断是否SQLEXPRESS
On Error Resume Next
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;Data Source=.;Initial Catalog=master;Integrated Security=SSPI;"
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT SERVERPROPERTY('EngineEdition') AS engine_edition", cn
If rs.Fields("engine_edition").Value = 4 Then
MsgBox "本机SQL版本为Express"
Else
MsgBox "本机SQL版本为Standard"
End If
rs.Close
cn.Close
End Sub