是否有一种方法可以知道使用ODBC连接的MS Access数据库中的链接表指向哪个SQL Server?
我使用下面的代码,但是我只获得了数据库名称,而不是SQL Server名称。
Private Function checkconn()
Dim strConnect As String
Dim lngLocation As String
strConnect = CurrentDb.TableDefs("dbo_buh_summary").Connect
lngLocation = InStr(strConnect, ";DATABASE=")
If lngLocation <> 0 Then
GetDataPath = Mid(strConnect, lngLocation + 10)
End If
End Function
答案 0 :(得分:1)
假设您使用FILE dsn来原始链接表? (或更少的DSN)。我强烈建议您始终使用FILE dsn(而非系统或用户)进行链接。原因是Access会自动为您将这些链接转换为无DSN。 (因此,您无需在每台计算机上都设置DSN)。
是否已注意到上述内容?您可以使用以下命令获取服务器和数据库名称:
# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(# .+?\\n)(.+)"
test_str = "# Title\\n## Chapter\\n### sub-chapter#### The Bar\\nIt was a fall day.\\n"
subst = "\\1"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 1)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
输出:
Sub m34343()
Dim strCon As String
strCon = CurrentDb.TableDefs("dbo_tblHotels3").Connect
Debug.Print strCon
Debug.Print Split(Split(strCon, "SERVER=")(1), ";")(0)
Debug.Print Split(Split(strCon, "DATABASE=")(1), ";")(0)
End Sub
因此,我在上面打印出了连接字符串,但是接下来的两行抓住了服务器和数据库名称。