EXCELvba写入ACCESS数据库表

EXCELvba写入ACCESS数据库表,第1张

第一步:连接数据,下面是参考代码

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0Data Source=" &mypath

conn.ConnectionString = conn.ConnectionString &"Jet OLEDB:Database Password=1"

conn.Open

第二步:插入数据,参考代码如下:

Sql = "insert into skmxb (内部管理号,收款日期,金额"

Sql = Sql &") values ('" &nbglH &"', #" &Format(myD, "yyyy/mm/dd") &"#,"

Sql = Sql &jE

Sql = Sql &")"

conn.Execute Sql

excel是一个自由表,一个EXCEL的工作薄就是一个数据库,它里面的每一张表就是数据库的表,你可象 *** 作表一样对其进行查询等 *** 作,它里面的列就是数据库的字段,行就是记录,因此你可以按数据库的架构来组建数据,只是你如果你组建的数据不符合数据库的规则,在查询时不能得到时相应的结果。因此在EXCEL中不存在创建数据库。但对存在的数据可以引用。当满足条件A、B、C、D……时引用是可以的,但如果是在EXCEL中直接引用是不行的,一种是用VBA利用ADO访问EXCEL,在查询时把A、B、C、D几个条件按SQL语法写进查询语句中,引用返回的记录集,一种是利用函数把满足A、B、C、D的记录筛选出来,然后再引用。

方法一:在eccel VBA编辑器编写代码,使用FOR循环导入:

Sub 利用Excel的VBA将数据写入Access()

'定义ADODB 连接Access数据库

Dim Cnn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim strCon As String

Dim strFileName As String '数据库文件名

strFileName = InputBox("请输入文件路径及文件名:", "Excel传递数据至Access", "E:\ExcelTest\Staff.mdb")

'连接字符串,我这里是Access2010,所提供者参数为:Provider=Microsoft.ACE.OLEDB.12.0

'如果此参数不能使用,根据自己的电脑修改这个字符串

'至于连接至的数据库名,根据自己的电脑修改,或用一个对话框或其他方式将此值传递进程序

strCon = "provider=Microsoft.jet.OLEDB.4.0" _

&"Data Source=" &strFileName &""

Cnn.Open strCon

Rs.ActiveConnection = Cnn

Rs.LockType = adLockOptimistic

Rs.Open "Employee" '假设表为Employee

'定义Excel表中的数据区域以写入Access

Dim Sht As Worksheet

Dim Rn As Long

Dim Cn As Long

Set Sht = ThisWorkbook.Sheets("Sheet1")

'假设将 Sheet1 表的 2-6行的1、2、3列写入Access表

For Rn = 2 To 6

Rs.AddNew

Rs!num = Sht.Cells(Rn, 1) ’num,name,department是数据库中指定表的字段

Rs!Name = Sht.Cells(Rn, 2)

Rs!department = Sht.Cells(Rn, 3)

Rs.Update

Next Rn

MsgBox "完成!"

Rs.Close

Cnn.Close

Set Rs = Nothing

Set Cnn = Nothing

Set Sht = Nothing

End Sub

方法二:在access VBA编辑器中编写代码

Sub ExcelToAccess()

DoCmd.TransferSpreadsheet acImport, , "Staff", "E:\ExcelTest\Employee.xls", True, "Sheet1!"‘DoCmd.TransferSpreadsheet是access编辑器中函数

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6784467.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存