2016-09-09 7 views
0

Я получаю ошибку при экспорте данных из SQL в уже созданный файл .xlsx. Я использовал openrowset.при экспорте данных в excel из sql с использованием openrowset получения ошибки

Он отлично работает большую часть времени, но когда данные поступают в поля, как большая строка, при вставке в Excel он показывает ошибку, как:

было прекращено заявление, строка или двоичные данные будет усеченным.

Данные вставляются в таблицу, но при вставке в excel возникает эта ошибка. Пожалуйста, помогите мне найти решение.

+0

обычно происходит, когда данные, которые вы вводите в поле слишком долго для свойств, заданных для этого поля. Проверьте свой лист excel для форматирования ячейки – Takarii

+0

При экспорте данных с использованием openrowset размер данных для разрешенного поля равен –

+0

. Единственный раз, когда отображается это сообщение, является когда данные, введенные в поле, слишком велики для поля, в которое оно помещается. Место, на которое вы должны обратить внимание, - это ваш листок превосходства. в отличие от перехода на новый файл, этот тип данных уже будет установлен в текущем файле. – Takarii

ответ

0

Итак, переходя от SQL Server к Excel, вы можете делать много вещей. Проверьте разжижает ссылку:

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

Кроме того, здесь есть некоторые V код для перемещения данных из 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