2016-09-09 25 views
0

SQLからデータをエクスポートしてすでに作成済みの.xlsxファイルにエラーが発生しました。私はopenrowsetを使用しました。openrowsetエラーを使用してSQLからExcelにデータをエクスポートするとき

Excelで挿入しながらのように、それはエラーを示し、それは時代の罰金ほとんどで動作しますが、データが大きな文字列としてのフィールドの中に来るとき:文は、文字列またはバイナリデータを終了した

が切り捨てられます。

データは表に挿入されますが、挿入時にExcelに間違いが生じます。 解決策をお探しください。

+0

通常起こりますそのフィールドに設定されているプロパティに対してシートのフォーマットを確認する – Takarii

+0

openrowsetを使用してデータをエクスポートしている間は、1フィールドあたりのデータサイズは –

+0

です。フィールドに入力されているデータがフィールドに入るには大きすぎます。あなたが見なければならない場所はあなたのExcelシートです。新しいファイルに転送するのとは異なり、データ型はすでに現在のファイル内に設定されています。 – Takarii

答えて

0

SQL ServerをExcelに変換すると、多くのことができます。チェックアウトリンク間引く:

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

はまた、ここではExcelにSQL Serverからデータを移動するためにいくつかのVBAコードです:あなたがフィールドに入力されたデータが長すぎる場合

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 
関連する問題