+ -
当前位置:首页 → 问答吧 → access中一个骇人的现象,求高手解答

access中一个骇人的现象,求高手解答

时间:2011-05-10

来源:互联网

我在保存数据时借用了下面一段代码:
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,这个数据居然就保存到数据库了。
可见,上面的代码没有什么问题,难道是excel或access故意搞的鬼,恐怖啊,高手们请解答一下

作者: QOQ   发布时间: 2011-05-10

没有附件,恐怕谁也搞不懂。

作者: zez   发布时间: 2011-05-11