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