作者winnieboy (~砍掉重練~)
看板Visual_Basic
標題[SQL ](VB) Excel更新資料後匯入linux mysql~
時間Tue May 11 17:33:33 2010
※ [本文轉錄自 Database 看板]
作者: winnieboy (~砍掉重練~) 看板: Database
標題: [SQL ](VB) Excel更新資料後匯入linux mysql~
時間: Tue May 11 17:32:16 2010
各位大哥好,因工作需求要將excel匯入mysql 及 將 mysql匯出excel
以上二個功能都做完了,但還需要一個功能就是我匯入一份Excel後,
要修改Excel上的任意數值後再匯入一次,這時就會出現錯誤。
duplicate entry 'ABA00001' for key 1
感覺是不能用rs.AddNew,但把AddNew那行註解後也是出現一樣的訊息
我使用ADO 的方式,附上程式碼 希望有高手出現 Orz....
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
conn.CursorLocation = adUseClient
conn.ConnectionString = "DRIVER=MySQL ODBC 3.51 DRIVER;SERVER=192.168.2.18;DATABASE=test;UID=root;password=123456"
conn.Open
rs.Open "SELECT * FROM User ", conn, adOpenStatic, adLockOptimistic
Do Until Res.EOF
'rs.AddNew
rs("Serial_No") = Res.Fields(0).Value
rs("PW") = Res.Fields(1).Value
rs("Manufacture date") = Res.Fields(2).Value
rs("Product name") = Res.Fields(3).Value
Res.MoveNext
rs.Update
Loop
--
http://www.wretch.cc/user/littlesafe99
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.211.183
--
http://www.wretch.cc/user/littlesafe99
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.211.183
1F:→ winnieboy:我笨了好幾天....剛突然解決了.....Orz... 05/11 17:42
2F:推 jwjeng:要不要順便說一下是怎麼解決的? 05/11 22:52
3F:→ winnieboy:目前是寫雙重迴圈判斷主鍵是否在資料庫內再做更新... 05/12 09:04
4F:→ winnieboy:但我覺得這樣速度好像有點慢,有人推薦用Insert..還在試 05/12 09:04
5F:→ winnieboy:應該說是 INSERT … ON DUPLICATE KEY UPDATE..... 05/12 09:09
6F:→ JacobTai:如果是 MySQL 直接用 replace into 吧... 05/12 11:25
7F:→ winnieboy:最後還是使用Delete後再addNew的方式 = =.. 05/12 13:18