sql 处理access数据库问题, 急!!!!!
本帖最后由 bcrun 于 2013-06-12 11:36:28 编辑 表tb1有15万记录,表tb2有2万多记录,要从tb1中删除字段a1不包含在tb2的记录。
oCn.execute "delete from tb1 where tb1.a1 not in(select a1 from tb2)"
经测试 当tb1 tb2 只有少量数据时没问题,但在真实数据处理时,程序就卡死了(是真的卡死了 ,过了很长时间tb1的记录数都没变化)。
对于这中情况怎么解决最好?
按tb2中的记录逐条在tb1中处理,代码可以持续运行,但处理速度极慢,无法忍受
如果把tb2中的记录分成若干段与tb1一起处理应该是个不错的选择,想请大家帮着看看多少条记录分成一段好?
或着还有什么更好的办法?
非常急 先谢谢大家了 !
[解决办法]
如此大的数据量,对于Access而言,没有好的办法。建议你更换数据库。使用sql server
[解决办法]
'新建一个窗体,在窗体中加一个命令按钮加上下面代码
Private Sub Command0_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
rs.Open "select a1 from tb2", cn, 3
Do While Not rs.EOF
cn.Execute "delete from tb1 where a1=‘"+Cstr(rs.Fields("a1").Value)+"'"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub