Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 mssql连接错误_Sql Server_Vba - Fatal编程技术网

Sql server vba mssql连接错误

Sql server vba mssql连接错误,sql-server,vba,Sql Server,Vba,我正在尝试将sql与Access连接。 我想做的只是使用select语句从mssql获取数据。 这是代码 Sub ConnectSQLServer() Dim cmd As ADODB.Command Dim conn As ADODB.Connection Dim rs As ADODB.Recordset Dim strConn As String Dim par As ADODB.Parameter Dim strSQL As String strConn = "DRIVER=SQL

我正在尝试将sql与Access连接。 我想做的只是使用select语句从mssql获取数据。 这是代码

Sub ConnectSQLServer()

Dim cmd As ADODB.Command
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strConn As String
Dim par As ADODB.Parameter
Dim strSQL As String


strConn = "DRIVER=SQL Server;SERVER=CHU-AS-0004;DATABASE=RTC_LaplaceD_DEV;Trusted_Connection=Yes;"

Set conn = New ADODB.Connection
conn.Open strConn

Set cmd = New ADODB.Command
cmd.CommandText = "dbo.Version"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn

strSQL = "SELECT * FROM dbo.Version"


cmd.Execute
conn.Close

Set conn = Nothing
Set cmd = Nothing
End Sub
当我执行此代码时,会出现类似“[Microsoft][ODBC SQL Server驱动程序][SQL Server]的错误,对过程“Version”的请求失败,因为“Version”是一个表对象。”

我知道我需要在“strSQL=SELECT*FROM dbo.Version”之后添加一些内容,但我不知道如何准确填写。
您能帮我一下吗?

看起来您正在以SP或SQL命令的形式执行dbo.Version,这是错误的

您应该在strSQL对象中执行该命令。因此,在修改后,您的代码将如下所示:

strSQL = "SELECT * FROM dbo.Version"

Set cmd = New ADODB.Command
cmd.CommandText = strSQL
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn
编辑1

我在MS Excel中复制了相同的问题,通过使用以下代码从MS SQl Server读取数据,它对我有效:

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

'Open Connection'
    objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=HARSH-SHARMA\SQLEXPRESS;Initial Catalog=db1;User ID=sa;Password=pass001;"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select * from Subject"

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

'Copy Data to Excel'
    ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)

请尝试此操作。

非常感谢!!!但当我修复该代码时,我遇到以下错误…:[Microsoft][ODBC SQL Server驱动程序]语法错误或访问冲突。您也知道如何解决此错误吗?您是否连接了access/Excel(VB6)连接到MS SQL Server?是的,连接Access和mssql Server我刚刚修改了我的实际帖子并发布了新代码,请尝试一下,它对您有用。