Office中国论坛/Access中国论坛

标题: EXCEL数据导入ACCESS避免重复记录的问题 [打印本页]

作者: cola    时间: 2006-5-28 18:38
标题: EXCEL数据导入ACCESS避免重复记录的问题
我利用EXCELVBA循环将一工作表第二行到数据末行的数据导入到ACCESS.现在遇到一个问题:我按命令按钮可导入数据.如果我误操作按了第二次,电脑也会把相同的记录再一次地导入到ACCESS,或者我在原工作表末记录再添加了若干条记录后再按命令按钮,它也同样会把所有记录添加进来,造成原来的记录就有重复.有没有办法可以让电脑判断将加导入ACCESS的记录是原ACCESS记录中没有的,则进行添加,如果已存在相同记录则给出msgbox提示取消本条记录的导入,接下去导入下一记录.备注:ACCESS没设置主键或是索引.
作者: chul72    时间: 2006-5-28 21:43
你将源数据和目标表中的数据进行比较,将不匹配的追加不就可以了。

还有,为什么用VBA循环,SQL 直接导入。


作者: fan0217    时间: 2006-5-28 22:18
导入数据后,将被导入的文件挪个地方或更名。
作者: cola    时间: 2006-5-29 00:22
谢谢二位的回答.对于chul72的疑问解释一下,如果是人工进行对比那就失去自动导入的意义了,另外这是做在EXCELVBE中的代码,等到代码成熟了就可以直接做成一个命令按钮图标,让大家操作了,这其中就包括了不懂ACCESS的人.版主的解答固然也能实现我的要求,可总归感觉不是最优的解.继续期待.
作者: wuaza    时间: 2006-5-29 02:03
最好的办法还是设置一个唯一索引。

记录间总能找出具有唯一性的一个或多个字段吧?
作者: wu8313    时间: 2006-5-29 06:31
可以将代码写在 acc里面,使用 DoCmd.TransferSpreadsheet 这个试试。

Public Sub xls_to_acctable()

On Error GoTo xls_to_acctable_Err

    DoCmd.TransferSpreadsheet acImport, 8, "tbl_xlssource", CurrentProject.Path & "\" & "1.xls", True, "c4:c20"


xls_to_acctable_Exit:
    Exit Sub

xls_to_acctable_Err:
    MsgBox Error$
    Resume xls_to_acctable_Exit

End Sub


因为每导入一次数据,就追加xls数据到acc表中,所以,导入前要删除acc表中的所有数据

我做了一个例子,你看看是否可以。

[attach]18094[/attach]


[此贴子已经被作者于2006-5-28 22:34:50编辑过]


作者: nxjswt    时间: 2006-6-4 00:40
1、在主窗体的如下

Private Sub Form_Open(Cancel As Integer)
   
   '删除表记录
   DoCmd.SetWarnings False

   DoCmd.RunSQL "DELETE Sheet1.* FROM Sheet1;"
   DoCmd.SetWarnings True
   
End Sub

2、按钮导入事件

Private Sub Command1_Click()
On Error GoTo Err_Command1_Click

    If MsgBox("1、请确认已经将需要导入的EXCEL文件命名好并放在'd:\111.xls'!" _
       + Chr(13) + "2、开始导入该文件吗?", vbExclamation + vbYesNo, _
        "请注意!") = vbYes Then
    DoCmd.TransferSpreadsheet acImport, 8, "Sheet1", "d:\111.xls", False, ""
    End If
    MsgBox "数据导入结束!", vbDefaultButton1, "注意"
   
Exit_Command1_Click:
    Exit Sub

Err_Command1_Click:
    MsgBox Err.Description
    Resume Exit_Command1_Click
   
End Sub

作者: van_zeng    时间: 2006-11-10 22:55
看看
作者: lordcatus    时间: 2008-12-7 13:37
学习。。每天学一招。。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3