一、ACC数据库文件名后缀:mdb(2003版本)和accdb(2007及以上版本),类似xls和xlsx的区别;
二、EXCEL-ACC处理:
1、Excel批量导入ACC:
需引用:Microsoft ActiveX Data Object 2.8 Library【2.0-6.1任意选一个,我选的是2.8】
Sub 数据导入ACC()
On Error Resume Next
t = Timer
'定义ADODB 连接Access数据库
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strFileName As String '数据库文件名
'strFileName = InputBox("请输入文件路径及文件名:", "数据库地址确认", "G:\YLMS\zj.mdb")
strFileName = "F:\DYGH.mdb"
'如果是2010版本,参数为:Provider=Microsoft.ACE.OLEDB.12.0;
'如果是2003版本,修改成:provider=Microsoft.jet.OLEDB.4.0;
Cnn.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & strFileName & ";"
rs.ActiveConnection = Cnn
rs.LockType = adLockOptimistic
rs.Open "CDMX" '数据库表名称
'定义Excel表中的数据区域以写入Access
Dim Sht As Worksheet
Dim rn As Long
Dim CN As Long
Set Sht = ThisWorkbook.Sheets("YW")
For rn = 2 To Range("A65536").End(xlUp).Row
rs.AddNew
'Rs!ID = Sht.Cells(rn, 1) 'num,name等是数据库中指定表的字段
rs!XITONG = "运维网"
'Rs!ZHUANGHAO = Sht.Cells(rn, 3) '是否需要注释掉SHT,请依据测试结果
rs!ZHUANGHAO = Range("C" & rn)
rs!CDLIANG = Range("D" & rn)
rs!CHEHAO = Cells(rn, 5)
rs!KMS = Cells(rn, 6)
rs!SOC_KS = Cells(rn, 7)
rs!SOC_JS = Cells(rn, 9)
rs!KSSJ = Cells(rn, 10)
rs!JSSJ = Cells(rn, 11)
rs!YONGSHI = Cells(rn, 8)
rs!BEIZHU = Now()
rs.Update
Next rn
MsgBox "数据导入成功!"
rs.Close
Cnn.Close
Set rs = Nothing
Set Cnn = Nothing
Set Sht = Nothing
MsgBox "运行" & Format((Timer - t), "0.0000") & "秒"
End Sub
2、vba删除ACC数据:
需引用:Microsoft DAO 3.6 Object Library
Sub vba删除ACC()
Dim strFileName As String
strFileName = "F:\DYGH.mdb"
Dim con As New ADODB.Connection
con.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & strFileName & ";"
'ACC如果是2010版本,参数修改为:provider=microsoft.ace.oledb.12.0;
Dim sql As String
sql = "delete from CDMX"
con.Execute (sql)
MsgBox "数据库内容已删除!"
End Sub