另,建议使用事务机制处理数据。
将和配合使用,vb+access试验数据表明,一百万条新数据插入,仅需要一分多钟,使用更新十万条数据时需要三五分钟。不使用事务应该会更久(根据先前经验,未测试).
需要注意的是,使用时,否则会报错。
4. privatesub
5. dimas[,
6. [dim[, as[,
7. [dim[, asstring
8. [dim[, asstring
9. [dim[, asstring
11. [打开连接。
12. [provider=桌面/新建microsoftofficeaccess应用程序。mdb;persistsecurityinfo=false"
13. [setnew[,
16. [dimaslong
17. [dimasstringasstring
21. [set[, new[,
22. [不能使用adlockbatchoptimistic或adlockreadonly
24. [tab"
26. [forto
28. [a"
29. [b"
31. [next
41. endsub
42. excel数据导入access方法。
44. 任务: 把vba所在表内容全部导入access数据库中,45. excel表中有表头, 有26列, 几百行记录。
46. 方法一 :逐行读入记录,47. dim sql as string
dim arr
dim m, n as long
dim aa
48. mydata =
with cnn '建立与数据库连接。
provider =
open mydata
end with
aa = timer
49. x = a65536").end(xlup).row
50. arr = 1), cells(x, 26)).value
f = ubound(arr)
g = ubound(arr, 2)
51. for m = 1 to ubound(arr)
sql = select * from sa"
sql, cnn, adopenkeyset, adlockoptimistic
with rs
addnew
for n = 1 to ubound(arr, 2)
fields(n - 1).value = arr(m, n)
next n
update
end with
next m
52. msgbox "ok" &timer - aa & 秒"
set rs = nothing
set cnn = nothing
end sub
57. 方法二: 直接一次性批量导入,简单直接,不过要注意动作之前excel里不能存在空行或无效行,默认的它会把所有已经使用过的行(包括已经清空数值的空行)当作有效记录插入到access的,58.
sub importtoaccess()
dim cnn as new
set cnn = new
"provider="
data source="
jet oledb:engine type=4"
sqlstring = insert into [sa] select * from [excel 8.0;database=" hdr=yes].[sheet1$];
msgbox "
59. sqlstring
60. msgbox "数据导入成功!",vbinformation
set cnn = nothing
end sub
63. access 连接字符串**。
66. 最近用ado搞一个access的数据库操作软件,在网上搜了一下。英文好的还是参考一下msdn关于 provider的说明。标准安全策略。
68. driver=;dbq=c:\\
70. 工作组。
72. driver=;dbq=c:\\
74. 独占模式。
76. driver=;dbq=c:\\
78. 管理员模式。
79. 如果您需要在程序中使用 create user, create group, add user, grant, revoke 和defaults等命令,您就需要使用此连接字符串。
80. driver=;dbq=c:\\
82. ole db, oledbconnection (.net)
84. 标准安全策略。
86. provider= source=c:\\id=admin;password=;
88. 使用数据库密码。
89. 如果您的access数据库设置了密码,您就需要参照如下连接字符串将密码写入后才能够正常使用。
90. provider= source=c:\\oledb:database password=mydbpassword;
92. 工作组(系统数据库)
94. provider= source=c:\\oledb:system database=
96. 工作组(系统数据库)并且制定用户名和密码。
98. provider= source=c:\\oledb:system database= id=myusername;password=mypassword;
privatesubcommand1_click()
access导出到excel
dimspathasstring
provider="
spath="\
ifdir(spath)<>then
killspath
elseselect*intosheet1in'"&spath&"'excel8.0;'from表1")
msgbox"导出成功",vbokonly,"提示"
endifsetdb=nothing
endsub
privatesubcommand2_click()
从excel导出到access
dimspathasstring
provider="
spath="\
select*intotable4from[sheet1$]in'"&spath&"'excel8.0;'"
setdb=nothing
endsub
Access和Excel练习
1access2000数据库属于 数据库系统。a.树状。b.逻辑型。c.层次型。d.关系型。2在access2000中,如果一个字段中要保存长度多于255个字符的文本和数字的组合数据,选择 数据类型。a.文本。b.数字。c.备注。d.字符。3access2000中,建立查询时可以设置筛选条件,应在 ...
数学拓展与链接 12
2014年月日星期。学号姓名。一 填空题 1.设l为直线,是两个不同的平面,下列命题中正确的是 a 若l l 则 b 若l l 则 c 若l l 则 d 若 l 则l 2.如图,在 abc中,bac 90 pa 面abc,ab ac,d是bc的中点,则图中直角三角形的个数是 a 5 b 8c 10 ...
中考考点归纳与链接
作者 中学生英语 中考指导版 2018年第06期。代词it,one,that的用法区别。1.它们均作代词指代前文提到的名词。但it所指的是同名同物,one和that所指是同名异物。例如 i like the bike,but i h e no enough money to buy it.我喜欢这辆...