用excel vba,将EXCEL数据追加到ACCESS数据库的某张表中的实例(学习备注)

Sub test_excelToAccess()
    Dim strFile As String
    Dim dbData As DAO.Database
    Dim appNew As Access.Application '需要引用access lib,也可通过createobject创建access application
    Dim strSql As String
    docmd.SetWarnings (False)
    Set appNew = New Access.Application
    strFile = "C:\Users\smc8236\Desktop\新报价程序.accdb"
    appNew.OpenCurrentDatabase (strFile)
    strSql = "insert into sheet1(a,b,c,d) " _
                  & "select * from [Excel 12.0;Database=D:\3.xlsx].[Sheet1$]"
    appNew.docmd.runsql strSql
    docmd.SetWarnings (True)
    MsgBox "That's OK!"
    appNew.CloseCurrentDatabase
    Set appNew = Nothing
End Sub
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的VBA代码示例,可以将Excel表中的数据批量插入到Access数据库中的某张表中,并根据导入的数据修改某张数据表的存量。在代码中,假设Excel表中的数据存储在Sheet1中,Access数据库文件名为MyDatabase.accdb,数据表名为MyTable,存量表名为StockTable,存量表中有两个字段:Product和Stock。代码示例如下: ```VBA Sub ImportDataToAccess() '定义变量 Dim conn As Object Dim rs As Object Dim strSQL As String Dim strConn As String Dim i As Integer '连接Access数据库 Set conn = CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=C:\MyDatabase.accdb;" conn.Open strConn '插入数据到MyTable表中 Set rs = CreateObject("ADODB.Recordset") rs.Open "MyTable", conn, adOpenKeyset, adLockOptimistic For i = 2 To 10 '假设数据从第二行开始,到第十行结束 rs.AddNew rs("Product") = Sheets("Sheet1").Range("A" & i).Value rs("Price") = Sheets("Sheet1").Range("B" & i).Value rs.Update Next i rs.Close '更新存量表中的数据 strSQL = "UPDATE StockTable SET Stock = Stock - (SELECT SUM(Price) FROM MyTable WHERE Product = StockTable.Product)" conn.Execute strSQL '关闭连接 conn.Close Set conn = Nothing End Sub ``` 在代码中,使用ADODB对象来连接Access数据库,并使用Recordset对象来操作MyTable表中的数据。在循环中,将Excel表中的每一行数据插入到MyTable表中,并根据Product字段更新StockTable表中的存量数据。最后,关闭连接。请注意,代码中的连接字符串和文件路径需要根据实际情况进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值