使用openrowset从sql导出数据到excel时获取错误

时间:2016-09-09 10:14:10

标签: sql-server excel openrowset

将数据从SQL导出到已创建的var schema = { "type": "object", "switch": [ { "if": { "properties": { "powerLevel": {"constant": false} } }, "then": { "required": ["disbelief"] } }, { "then": { "required": ["confidence"] } } ], "switch": [ { "if": { "properties": { "power": {"constant": false} } }, "then": { "required": ["disb"] } }, { "then": { "required": ["conf"] } } ] }; 文件时出错。我用了.xlsx

大部分时间都可以正常工作,但是当数据作为大字符串进入字段时,在excel中插入时会显示错误:

  

语句已终止,字符串或二进制数据将被终止   截断。

数据被插入到表中,但在excel中插入时会出现此错误。 请帮我找到解决方案。

1 个答案:

答案 0 :(得分:0)

因此,从SQL Server到Excel,你可以做很多事情。查看链接:

https://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm#Introduction

此外,这里有一些VBA代码将数据从SQL Server移动到Excel:

Sub ADOExcelSQLServer()
     ' Carl SQL Server Connection
     '
     ' FOR THIS CODE TO WORK
     ' In VBE you need to go Tools References and check Microsoft Active X Data Objects 2.x library
     '

    Dim Cn As ADODB.Connection
    Dim Server_Name As String
    Dim Database_Name As String
    Dim User_ID As String
    Dim Password As String
    Dim SQLStr As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    Server_Name = "EXCEL-PC\EXCELDEVELOPER" ' Enter your server name here
    Database_Name = "AdventureWorksLT2012" ' Enter your database name here
    User_ID = "" ' enter your user ID here
    Password = "" ' Enter your password here
    SQLStr = "SELECT * FROM [SalesLT].[Customer]" ' Enter your SQL here

    Set Cn = New ADODB.Connection
    Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
    ";Uid=" & User_ID & ";Pwd=" & Password & ";"

    rs.Open SQLStr, Cn, adOpenStatic
     ' Dump to spreadsheet
    With Worksheets("sheet1").Range("a1:z500") ' Enter your sheet name and range here
        .ClearContents
        .CopyFromRecordset rs
    End With
     '            Tidy up
    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing
End Sub