可能重複:
Excel VBA INSERT INTO statement using variables插入Excel單元格的值到現有的SQL表
我剛開始學習了一下VBA的,我已經成功地導入從數據在SQL Server中創建的數據庫就好了,現在我試圖將數據從Excel導出到同一個數據庫中。
下面的作品就好了:
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並將其插入到我的數據庫中。
像這樣:
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行的值。
我已經試過以下 EXEC(@sql): (+)','「+範圍(」B3「)。 Value +「','」+ Range(「D3」)。Value +「','」+ Range(「E3」)。Value +「','」+ Range(「F3」)。 ''+ Range(「G3」)。Value +「')」' 但是得到一個: 類型不匹配的錯誤,這可能是由於我試圖插入日期到數據庫?... –
是的,這似乎有可能。嘗試只做一對夫婦的列作爲測試,列只是普通的舊數字或字符串。 Excel將日期存儲爲整數。我不確定你如何通過VBA調用常規的Excel功能,但是如果你嘗試使用TEXT(範圍(A3),「yyyy-mm-dd」),那麼看看你會得到什麼。您希望它創建一個SQL Server將接受爲日期的字符串,並且我認爲這可能與您的語言環境有關,但yyyy-mm-dd看起來與您的示例相匹配。 –
[這裏是鏈接](http://www.cpearson.com/excel/callingworksheetfunctionsinvba.aspx)關於從excel中調用工作表函數(如TEXT)。 –