|
我在保存数据时借用了下面一段代码:
Sub test1()
On Error Resume Next '以“部件代码”为关键字,判断数据是否重复,重复的跳过,只添加不重复的
Dim RS1 As Recordset
Dim DB1 As Database
Dim eRow As Integer
Dim i As Integer
eRow = Range("A65535").End(xlUp).Row
Set DB1 = OpenDatabase(ThisWorkbook.Path & "\Concession.mdb")
Set RS1 = DB1.OpenRecordset("总表")
For i = 2 To eRow
With RS1
.AddNew
.Fields("部件类型").Value = Cells(i, 2).Value
.Fields("部件代号").Value = Cells(i, 3).Value
.Fields("部件名称").Value = Cells(i, 4).Value
RS1.Update
End With
Next i
RS1.Close
End Sub
由于工作需要,我打开了数据库进行了核对,发现了一个惊人的现象:
1.如果主键是字母与数字混合而成,不重复的数据有411个,第一次运行上面的代码后只能将393个数据保存到数据库,然后剩下的18个数据要分别再运行上面的代码约5次才能彻底将411个数据保存到数据库中。
2.尽管主键是数字且是按1,2,3,4,5……排列,运行上面的代码后居然出现了大量的数据遗漏,且反复运行代码都不能保存到数据库,遗漏的数据没有规则性,有可能是第19个,也有可能是第21个,如果在excel中将保存为主键的数字,比如说第19个数据的主键源为19,修改为18,这个数据居然就保存到数据库了。
[ 本帖最后由 QOQ 于 2011-7-23 19:08 编辑 ] |
|