【发布时间】:2016-11-30 19:01:26
【问题描述】:
我正在将 Excel 表中的数据导出到 SQL Server 数据库,如果存在 UPDATE 否则 INSERT。
以下 VBA 代码适用于导出到 ACCESS 数据库, 但不是 SQL SERVER 数据库表。
出现错误消息:.Index 和 .Seek 的属性使用无效。
请帮忙!!!呵呵
Sub ExcelDataToSql ()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Dim lastrow As Long, o As Long
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=SQLNCLI11;Server=***;Database=****;Trusted_Connection=yes;"
rs.CursorLocation = adUseServer
rs.Open "InventorySQL", cn, 1, 3, adCmdTableDirect
' Get Lastrow
Worksheets("InventoryEXCEL").Select
lastrow = Worksheets("InventoryEXCEL").Cells(rows.Count, 1).End(xlUp).Row
r = 2 ' the start row in the worksheet
For o = 2 To lastrow
'Check For Duplicate In Database SQL
With rs
.Index = "PrimaryKey"
.Seek Range("A" & r).Value
If .EOF Then
.AddNew
'If No Duplicate insert New Record
rs.Fields("oPartno") = Range("A" & r).Value
rs.Fields("oDesc") = Range("B" & r).Value
rs.Fields("oCost") = Range("C" & r).Value
.update
Else
' If Duplicate Found Update Existing Record
rs.Fields("oDesc") = Range("B" & r).Value
rs.Fields("oCost") = Range("C & r).Value
.Update
End If
End With
Next o
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox "Posting Completed"
End Sub
。 Index = "PrimaryKey" --- Sysntax 错误:无效使用属性 .Seek Range ("A" & r).Value Sysntax Error :
【问题讨论】:
-
为什么 r 和 mysal 被标记在这里?如果我没有误解,SQL Server 似乎是更合适的标签?
-
感谢您的反馈...这是我在stackoverflow中的第一篇文章...以后会更加小心...我道歉。
标签: sql-server vba excel