2011-12-08 20 views
0

可能性の重複:私はちょうどVBAのビットを学び始めました
Excel VBA INSERT INTO statement using variables挿入Excelのセル値

、私はからデータをインポートすることができましたSQL Serverで作成されたDBがうまくいきましたが、Excelから同じDBにデータをエクスポートしようとしています。

罰金以下の作品:

Dim cnState As ADODB.Connection 
Dim sSQL As String 
Set cnState = New Connection 
With cnState 
.Provider = "SQLOLEDB" 
.ConnectionString = "server=.\SQLEXPRESS; Trusted_Connection=Yes; database=SIM_PROJ" 
.Open 
End With 
sSQL = "Insert Into Alunos Values ('3', 'Tiago Aleixo', 'Rua dos Pincéis' , '1990-05-26' , 'M' , 'Multimédia' , 'D')" 
cnState.Execute sSQL 

End Sub 

Private Sub btn_goMenu_Click() 

Sheet1.Select 

唯一の問題は、私が唯一、私は全体のラインを読むことができるようにしたいコードを実際の値を挿入する方法を見つけ出すことができた、ありますExcelと私のDBに挿入します。このような

何か:

sSQL = "Insert Into Alunos Values (Range(A4).Value, Range(B4).Value, Range(C4).Value, Range(D4).Value, Range(E4).Value, Range(F4).Value, Range(G4).Value)" 

IE、私は唯一の4行目からの値を挿入することにしたいです。

SQL = "INSERT INTO alunos VALUES ('" + Range(A4).Value + "', '" + Range(A5).Value + "', '"... 

あなたはルックスは、それがデータベースに文字列「範囲(A4).Valueの」を挿入しようとするilke示し構文:

答えて

0

は、おそらくあなたは次のように多くのインクリメンタル文字列を構築する必要があります。

+0

私は次のことを試してみました: "Range +" Range + "Range +" Range + "Range +" Range + "Range +" Range + "Range +" Range + "Range +" Range + "Range +" Range + "Range"値+ "'、" +範囲( "F3")。値+ "'、" +範囲( "E3" '' + Range( 'G3')。Value + "')"' タイプミスマッチエラーです。これはデータベースに日付を挿入しようとしている可能性がありますか... –

+0

はい、そうですおそらく。単純な古い数値や文字列である列をテストとして使用してみてください。 Excelは日付を整数として格納します。私はあなたがVBAを通して普通のExcel機能をどのように呼び出すのかは分かりませんが、TEXT(Range(A3)、 "yyyy-mm-dd")を試してみると何が得られるか見てみましょう。 SQL Serverが日付として受け入れる文字列を作成したいと思っていますが、おそらくロケールの値がyyyy-mm-ddの値があなたの例と一致するように見えると思います。 –

+0

Excelからワークシート関数(TEXTなど)を呼び出す方法については、[リンク先](http://www.cpearson.com/excel/callingworksheetfunctionsinvba.aspx)を参照してください。 –

0

ファイルをカンマ区切りのCSVファイルとして保存し、以下のようにバルク挿入を使用できます。 "FROM BULK INSERT TAB_UY420 ' " 宣言@sqlのvarchar型(最大) セット@sql = + @ファイル+"' WITH(FIELDTERMINATOR = '')" のexec(@sql)

関連する問題