Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在VBA中从Excel连接到SQL Server时出现问题_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 在VBA中从Excel连接到SQL Server时出现问题

Sql server 在VBA中从Excel连接到SQL Server时出现问题,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我需要能够使用用户名/密码从Excel连接到SQL Server。我已指明: 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String 'Open Connection' objMyConn.ConnectionString = "Driver=SQL Server;Server=SE

我需要能够使用用户名/密码从Excel连接到SQL Server。我已指明:

'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Driver=SQL Server;Server=SERVER\SERVER;Database=we_ci_db; Uid = genericReadWrite; Pwd=XYZ;"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select TOP 1 * from tblUsers WHERE alias='" & "username" & "'"

    'Debug.Print strSQL
'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    Sheets("Sheet1").Range("A4").CopyFromRecordset (objMyRecordset)
代码将一些基本细节复制到“系统”选项卡,更新一些标志“UserID,SystemAccess”等,然后删除密码哈希以确保安全

现在我认为它到目前为止运行良好,但它显然已经退回到Windows身份验证(我的团队和我被明确列为SQL Server上的用户)

但是当我得到一个没有显式添加为NT登录到服务器的人时,它将不起作用

在Excel中,我们得到
-2147467259-[Microsoft][ODBC SQL Server驱动程序][SQL Server]无法打开登录请求的数据库“we\u ci\u db”。登录失败。

服务器日志显示:
用户“域\用户”登录失败。原因:无法打开显式指定的数据库。[客户端:xx.xx.xx.xx]


我将非常感谢您的帮助,因为它开始困扰我。我不知道这是SQL Server问题还是连接字符串问题,尽管连接字符串至少部分起作用,即使服务器忽略了用户名。

有试图登录的用户有权使用“we\u ci\u db”database?genericReadWrite作为SQL用户(通过用户映射)具有访问权限,该用户在服务器/db上未列为NT用户。