【问题标题】:VBA Connection String - Windows AuthenticationVBA 连接字符串 - Windows 身份验证
【发布时间】:2015-10-27 17:26:58
【问题描述】:

我想更改我的 SQL 连接以使用 Windows 身份验证而不是数据库用户名和密码。我需要在下面的代码中做哪些更改?

strSQL = ""
strSQL = strSQL & "OLEDB;" & vbCrLf
strSQL = strSQL & "Provider=SQLOLEDB.1;" & vbCrLf
strSQL = strSQL & "Integrated Security=SSPI;" & vbCrLf
strSQL = strSQL & "Initial Catalog=" & wshQuery.Range("B2").Value & ";" & vbCrLf
strSQL = strSQL & "Data Source=" & wshQuery.Range("A2").Value & ";" & vbCrLf
strSQL = strSQL & "Use Procedure for Prepare=1;" & vbCrLf
strSQL = strSQL & "Auto Translate=True;" & vbCrLf
strSQL = strSQL & "Packet Size=4096;" & vbCrLf
strSQL = strSQL & "Workstation ID=W-TPL-3275;" & vbCrLf
strSQL = strSQL & "Use Encryption for Data=False;" & vbCrLf
strSQL = strSQL & "Tag with column collation when possible=False"

strCon = strSQL

谢谢!

【问题讨论】:

  • 只要把你的标题放在谷歌上,你会找到无数的答案,应该像this一样工作
  • 我以前看过这个,它似乎不适合我。

标签: vba connection database-connection


【解决方案1】:

看看这段代码是否有效。此外,每次需要连接时,您都可以使用this website

Option Explicit

Sub test()

    Dim strCon As String

    strCon = vbNullString
    strCon = strCon & "OLEDB;"
    strCon = strCon & "Provider=SQLOLEDB.1;"
    strCon = strCon & "Integrated Security=SSPI;"
    strCon = strCon & "Initial Catalog=" & wshQuery.Range("B2").Value & ";"
    strCon = strCon & "Data Source=" & wshQuery.Range("A2").Value & ";"
    strCon = strCon & "Use Procedure for Prepare=1;"
    strCon = strCon & "Auto Translate=True;"
    strCon = strCon & "Packet Size=4096;"
    strCon = strCon & "Workstation ID=W-TPL-3275;"
    strCon = strCon & "Use Encryption for Data=False;"
    strCon = strCon & "Tag with column collation when possible=False;"

    'Added this two
    strCon = strCon & "Uid=" & UserName & ";"
    strCon = strCon & "Pwd=" & UserPassword & ";"

End Sub

谢谢,希望对你有帮助:)

【讨论】:

  • 它仍然会出现询问用户名和密码的框:(
猜你喜欢
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2017-03-23
相关资源
最近更新 更多