领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

VBA读取、写入access数据库(vba读取sql数据)

nixiaole 2025-04-11 03:35:23 知识剖析 7 ℃

当数据量过大时Excel存储和读取就好卡顿,可将数据保存到access数据库。

  • VBA读取access到Excel:

此处是当打开宏表格时,数据自动从access数据库对应表更新过来

Private Sub Workbook_Open()
Dim conn As New ADODB.Connection

Sheet1.Range("a2", Cells(Rows.Count, 1).End(xlUp)).ClearContents '清除原来数据

conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\practice\VBA\data.accdb"

Sheets("产品信息").Range("a2").CopyFromRecordset conn.Execute("select * from [产品信息]") '如果是EXCEL表需要加$符号

conn.Close

End Sub

固定格式为:
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=access表文件路径"
Sheets("拷贝到Excel表的名称").Range("a2").CopyFromRecordset conn.Execute("select * from [access表名称]")
conn.Close  '关闭链接

Dim conn As New ADODB.Connection,此处无法执行,需按以下设置:

  • VBA写入Excel到access:

需先创建好access数控表,字段格式要正确,要一一对应。

Private Sub Workbook_Open()
Dim conn As New ADODB.Connection
Dim str As String

conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\practice\VBA\data.accdb"

For j = 1 To Me.ListBox4.ListCount - 1 '逐条写入,此处是从列表控件中写入数据

    str = "('" & 字符字段& "','" & Date(日期格式字段) & " ','" & Me.ListBox4.List(j, 0) & "'," 数值格式字段& ")"
'注意双引号格式的书写'" & ******& "',此处是写入的数据值。
    
    conn.Execute ("insert into [销售记录] (订单编号,日期,产品编号,类别,品名,规格,单价,数量,单品合计) values" & str)
   'SQL插入数据语句insert into [表名] (字段名称)(字段对应的值),循环逐条插入
Next

conn.Close

End Sub
最近发表
标签列表