2015-12-04 114 views
0

我已經將SQL插入語句包裝在下面的Do While循環中,但是它只將範圍中的最後一行插入到SQL表中。我想要實現的是每一行都被複制到表格中。所以在我的例子中的數據在Excel中我有8行,我需要將所有8行復制到我的SQL表。我想,也許我的循環是錯誤的或者它只是需要調整,但我掙扎VBA僅插入添加最後一行

Do While Sheets("Exposure").Range("B14").Offset(i, 0).Value <> "" 
    j = i + 1 

    ' Compose the INSERT statement. 
    stSQL = "INSERT INTO AH_Exposure " & _ 
     "(Contract_ID, Location_ID, Country, State, Death_GrpVol, Death_GrpLives, Death_IndVol, Death_IndLives, Disability_GrpVol, Disability_GrpLives, Disability_IndVol, Disability_IndLives) " & _ 
     " VALUES (" & _ 
     "'" & Sheets("Exposure").Range("B14").Offset(i, 0).Value & "', " & _ 
     "'" & j & "', " & _ 
     "'" & Sheets("Exposure").Range("C14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("D14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("E14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("F14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("G14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("H14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("I14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("J14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("K14").Offset(i, 0).Value & "', " & _ 
     "'" & Sheets("Exposure").Range("L14").Offset(i, 0).Value & "'" & _ 
     ")" 
    i = i + 1 

    Loop 

在此先感謝

回答

1

您撰寫的發言,但有內環路實際上沒有代碼執行它。因此,它只是stSQL中的最後一個值,用於

+0

謝謝,現在我再次查看代碼是有道理的,你知道代碼是什麼嗎?我猜這會插在i = i + 1的底部 – Carlos80

+0

謝謝我剛剛計算出了這個結果 – Carlos80

+0

@ Carlos80 - 你可以把它放在該行之前,只要它出現在「Loop」之前, – CHill60