1

Excel用のアドインを作成して、現在のシートデータを読み込んでデータベースに挿入できるようにしたいと考えています。データベース接続には、ファイルの場所が必要です。したがって、私が現在開いているファイルを送信する必要があり、ファイルパスを指定することができないので、そのアプローチは適用できません。Excelアドインでシートからデータベースにデータを転送する:ファイルパスの問題

また、SQL Serverデータベースのテーブルの別の列に各列のデータを挿入する必要があります。どのような提案や助けになるコードですか?

+1

OMG:ここ

は、インサートのコードは次のように見えるかもしれないもののサンプルです! – Sadegh

+0

あなたはタイトルを変更する必要があります、人々はそのようなタイトルのリンクをクリックしません。 – Galilyou

+0

タイトルを変更して、読みやすくするために書式を変更しました。 – splattne

答えて

0

Excel内で行う必要がありますか? これは、Excel用のOleDbプロバイダとSQL用のOleDbプロバイダを指定する単純なADO.NETアプリケーションで行うことができます。

Example

技術上のlots of articlesがあります。 SQL Server Integration Services(以前はDTSと呼ばれていたSSIS)では、同じことを最小限のコードで実行できます。 HEreさんはold article on thatです。

これはExcel内から行うこともできます。 VS2005では、VSTO - Visual Studio Tools for Officeを使用します。私はVSTOの機能がVS2008 Professionalに含まれていると思います。 VS + VSTO(またはVS2008)を使用すると、Excelを含むOfficeアプリケーション用のAddInsを作成できます。 AddInでは、System.Data.SqlClientを使用してSQL Serverにデータを挿入するなど、コード内の好きなことを行うことができます。

1

VBAを使用してExcelでExcelアドインを作成することができます。 VBAエディタ(Tools - > Referencesを使用)でMicrosoft ActiveX Data Objects(ADO)への参照を追加する必要があります。次に、Connection、Command、RecordSetなどのオブジェクトにフルアクセスできます。

私がこれを行っていた場合、ユーザーはフォームを使用してインポートバッチごとにデータベース/テーブル/列を指定するようにします。次に、Connectionオブジェクトを作成し、データの各行をループして、行内のデータに基づいて挿入コマンドを作成して実行します。

完了したら、完了したブックをExcelアドインファイル(xla)として保存して他のユーザーに配布することができます。この質問のタイトルを見て、

Dim conn As New Connection 
Dim comm As New Command 
conn.Open YourConnectionString 
Set comm.ActiveConnection = conn 
comm.CommandText = "insert <table> (<column1>, <column2>, <column3>, ..., <columnN>) values (" + <value1> + ", '" + <value2> + "', " + <value3> + ", '" + <valueN>+ "')" 
comm.Execute 
conn.Close 
関連する問題