|
本帖最后由 zxyu 于 2014-12-25 17:20 编辑
求助:通过学习赵老师的插入并更新access数据库代码,可是在数据量大(2万条以上),字段多(158个字段)数据库存放在局域网内的服务器上(没有上传附件),使用以下代码时更新速度很慢,怎么改写希望能得到帮助,谢谢了!
上传.rar
(372.37 KB, 下载次数: 8)
登陆用户名:焦勇
密码:123456
数据库密码:123
vba工程密码:123457
需要按照申请时间和身份证号码两个字段同时相同更新记录(现在当数据库数据存放在局域网服务器上,数据量大的时候更新速度很慢)。
另外关闭弹出vba工程密码不知什么缘故。
- Sub 上传保存数据()
- Sheets("农户台账新").Activate
- If Cells(2, 2) = "" Then
- MsgBox ("输入信息请从第二行往下输入!")
- Exit Sub
- ElseIf Cells(2, 65) = "" Then
- MsgBox ("请输入经办客户经理!")
- Exit Sub
- ElseIf Cells(2, 2) <> "" Then
- aa = Timer '获取当前时间
- Dim CNN As New ADODB.Connection
- Dim sql$, s$
- MYPATH = "\\10.52.2.6\ww\db.mdb"
-
- s = "[Excel 8.0;Database=" & ThisWorkbook.FullName & "].[" & ActiveSheet.Name & "[ DISCUZ_CODE_0 ]quot; & [a1].CurrentRegion.Address(0, 0) & "]"
- CNN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MYPATH & ";jet oledb:database password=123"
- '删除数据库可能存在的工作表信息
-
- sql = "delete from 农户台账 where 申请时间 in(select 申请时间 from " & s & ") and 身份证号码 in(select 身份证号码 from " & s & ")"
- CNN.Execute sql
- ' 工作表信息追加到数据库表
- sql = "insert into 农户台账 select * from " & s
- CNN.Execute sql
- CNN.Close
- Set CNN = Nothing
- MsgBox "数据保存完毕:耗时" & Format(Timer - aa, "0.000") & "秒", vbInformation, "提示信息"
- End If
- End Sub
复制代码
|
|