在没有Windows身份验证的情况下从Access VBA运行SQL数据库中的存储过程

问题描述 投票:0回答:1

我试图在SQL数据库中运行存储过程(使用Access VBA)。我可以在SO和其他网站上找到一些这样的例子,但我无法找到的是连接字符串,我可以提供我的登录详细信息,因为Windows身份验证不起作用,因为我必须使用不同的用户连接到SQL数据库

这是我到目前为止所尝试的(从SO中的一个帖子得到这个,不幸的是,我再也找不到帖子了):

Sub RunSQLProc()
    Dim cdb As DAO.Database, qdf As DAO.QueryDef
    Set cdb = CurrentDb
    Set qdf = cdb.CreateQueryDef("")
    qdf.Connect = "ODBC;" & _
            "Driver=SQL Server;" & _
            "Server=myServer;" & _
            "Database=myDatabase;" & _
            "UID=myUsername;" & _
            "PWD=myPassword;" & _
            "Trusted_Connection=yes;"
'            "Driver={SQL Server Native Client 11.0};" & _
'            "MARS Connection=True;"
    qdf.SQL = "SQLStroedProcedure;"
    qdf.ReturnsRecords = False
    qdf.Execute dbFailOnError   '<-- this line throws the error
    Set qdf = Nothing
    Set cdb = Nothing
End Sub

qdf.Execute dbFailOnError行,我收到以下错误:

运行时错误'3151':ODBC - 与'SQL ServermyServer'的连接失败。

我已设法连接到SQL数据库并通过SQL Server Management Studio运行存储过程。这告诉我连接字符串中的详细信息是正确的(虽然我没有提供实际的详细信息),但我怀疑我的连接字符串存在问题。

很高兴提供更多细节。非常感谢任何帮助,谢谢

附:对我在Access中缺乏知识表示歉意。我只是不经常使用它

sql-server ms-access stored-procedures access-vba
1个回答
1
投票

使用SQL Server安全性删除Trusted_Connection=yes

https://www.connectionstrings.com/microsoft-sql-server-odbc-driver/

© www.soinside.com 2019 - 2024. All rights reserved.