私は約1000行と約15列のExcelスプレッドシートを持っています。私がしたいのは、このデータをテーブルにインポートすることですが、選択的にインポートします。私は行5から(言い換えれば)シートの最後から約5行までのデータを必要とします。これは、行数が異なることがあるためですが、スプレッドシートの行数に関係なく、最後の4-5行は必要ないと確信しています。さらに、Col1-Col5、Col7-Col9、Col12-Col15のようにいくつかの列だけを挿入したいと思います。これを達成するために使用できるコマンド/コマンドのシーケンスがありますか?できるだけ早くお知らせください。どうもありがとう!XLSの特定の列をMS SQL Serverテーブルに挿入するにはどうすればよいですか?
0
A
答えて
0
下のコードは、xlsの内容に基づいてSQL命令を含むファイルを作成します。マクロを追加して貼り付け、いくつかの変更を加えればいいだけです.ColFieldsコレクションを記入するのに、列名がテーブルのフィールド名と一致しなければならない行を追加し、そうでないものを宣言し、fileNameに値を与えます。 ..)。 その後、マクロを実行すると、必要なすべての挿入を含むファイルが作成されます。このファイルはベースで実行するだけです。
Sub Macro1()
Dim NbOfLines = Worksheets(Sheet1).Range("A65536").End(xlUp).Row - 5 'Not the 5 last lines
Dim ColFields As New Collection 'Do a while on the title line to fill the collection with wanted columns titles (do not add ignored columns)
Dim StartSql As String
StartSql = "INSERT INTO " + TableName + "("
For Each loopField In ColFields
StartSql = StartSql + loopField + ","
Next
StartSql = Left(StartSql, Len(StartSql) - 1)
StartSql = StartSql + ") SELECT "
Dim Value As String
For i = 1 To NbOfLines
Sql = ""
j = 1
For Each loopField In ColFields
Value = Worksheets(SheetName).Cells(i, j).Value
Sql = Sql + IIf(Value = "", "NULL", "'" + Replace(Value, "'", "''") + "'") + ","
j = j + 1
Next
Sql = Left(Sql, Len(Sql) - 1)
Sql = StartSql + Sql + vbCrLf
Call WriteLine(Sql, FileName)
Next
End Sub
Public Sub WriteLine(Ligne As String, FileName As String)
Open FileName For Append As #1
Print #1, Ligne
Close
End Sub
編集:私はそれが最善の方法(も最も美しい1)ではないと知って、私は別のDBからデータをインポートするために数週間前にそれを使用しcosをあなたにそれを与えた(しかし、私は必要な毎日ではなく一度だけ行う)。 OpenRowSetを使ってそれを行う方法があることは知っていますが、私はちょうど(このページで誰かが私に教えてくれるようにしばしば行くつもりです)わかりません。 最後に、このページを読むことをお勧めします:A Blog Page With A Solution (ここでは素晴らしい手順 'uftReadfileAsTable'が見つかります:The Procedure Code) 幸運!
関連する問題
- 1. このSELECT文をSQL Serverの挿入テーブルに変換するにはどうすればよいですか?
- 2. 特定の列に特定の値を挿入するにはどうすればいいですか?
- 3. MS SQL Serverのテーブルを挿入専用にしますか?
- 4. SQL Serverの挿入ステートメントで注文数を設定するにはどうすればよいですか?
- 5. 特定のテーブルにレコードを挿入するにはどうすればよいですか?
- 6. SQLテーブルの列名に角括弧を挿入するにはどうすればよいですか?
- 7. Rの列の特定の行に値を挿入するにはどうすればよいですか?
- 8. SQL Serverの列に特定の境界値を挿入する
- 9. 一括挿入のようなテーブルに値を挿入するにはどうすればよいですか?
- 10. SQLで特定の列を別のテーブルに移動するにはどうすればよいですか?
- 11. レルム配列の特定のインデックスにオブジェクトを挿入するにはどうすればよいですか?
- 12. MS SQL Serverのテーブル関数の結果と結合するにはどうすればよいですか?
- 13. 挿入は私のテーブル内の特定の列に挿入するT-SQL
- 14. MS Access SQL Serverのテーブルに結果を挿入します
- 15. ブランクデータがMySQLテーブルに挿入されないようにするにはどうすればよいですか?
- 16. jsonをSQL Server 2012に挿入するにはどうすればよいですか?
- 17. テーブル内の値をルックアップして別のテーブルに挿入するにはどうすればよいですか?
- 18. Null値を含むDataTableをSql Server Tableに挿入するにはどうすればよいですか?
- 19. MS OneDrive for Businessの共有テキストファイルをSQL Serverにどのように挿入するのですか?
- 20. SQL Server - 特定の列の挿入を無視する
- 21. サブクエリにMAX関数を挿入するにはどうすればよいですか? (SQL Server)
- 22. アラビア文字をSQL Serverデータベースに挿入するにはどうすればよいですか?
- 23. 01-JAN-13 12.00.00 AMをSQL Server 2012に挿入するにはどうすればよいですか?
- 24. コンティンジェンシーテーブルをSQL Serverデータベースに挿入するにはどうすればよいですか?
- 25. SQLテーブルに空行を挿入するにはどうすればよいですか?
- 26. ウェブサイトの特定のセクションのみをiframeに挿入するにはどうすればよいですか?
- 27. SQL Serverでは、テーブルのID列を1に戻すにはどうすればよいですか?
- 28. SQL ServerからAccessテーブルに挿入
- 29. 特定のURLのストリーミングビデオをAndroidアプリケーションに挿入するにはどうすればよいですか?
- 30. モデルを特定のインデックスのbackbone.jsコレクションに挿入するにはどうすればよいですか?
返信いただきありがとうございます! :)これより簡単な方法はありませんか? openrowsetを使って同じことをする方法はありますか?そして、もし私がこのファイルを使用するのであれば、どこに置くのですか?また、ファイル名は毎日異なります。その "動的な"性質をどのように説明するか?さらに、このコードを見ると、テーブルの列名とファイル内の列名が同じであることを前提にしています。つまり、実行するwhileループのためです。できるだけ早くお知らせください。 – CodingInCircles
これを行うためのSQLコマンドがあれば、本当に知りたがっていると思います。それを簡単にする。ありがとう! – CodingInCircles
お返事ありがとうございました!リンクを調べます。ありがとう! – CodingInCircles