Access/VBA/Excel-15-表信息整体迁移Select+Insert联动

微信公众号原文

系统:Windows 7
软件:Excel 2010 / Access 2010

  • 这个系列开展一个新的篇章,重点关注Access数据库
  • 主体框架:以Excel作为操作界面,Access作为数据库
  • 今天讲讲:如何将一个表的信息加入到另一个表中
  • 涉及知识:ADOSQL:Select + Insert

Part 1:问题

  1. 有一个原信息表存储着学生的姓名和成绩信息,现在需要对信息进行扩容
  2. 有一个新信息表,不仅有学生的姓名和成绩信息,还有一些其它信息
  3. 问题:将原信息表中满足要求的信息复制到新信息表中去,示例复制张三的信息

原信息数据表

Access/VBA/Excel-15-表信息整体迁移Select+Insert联动_第1张图片
1.png

新信息

2.png

Part 2:代码

Sub test()
    Dim adConn As New ADODB.Connection '连接
    Dim rs As New ADODB.Recordset
    Dim SQL As String
    Dim tblName
    Dim dbAddr
    
    dbAddr = ThisWorkbook.Path & "\信息档案.accdb"
    tbl1Name = "原信息"
    tbl2Name = "新信息"

    '连接数据库
    With adConn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .Open "Data Source=" & dbAddr
    End With
    
    opFilds = "*"
    searchC = "姓名='张三'"

    SQL = "Insert Into " & tbl2Name & " Select " & opFilds & " From " & tbl1Name & " Where (" & searchC & ")"
    Set rs = adConn.Execute(SQL)

End Sub

代码截图

Access/VBA/Excel-15-表信息整体迁移Select+Insert联动_第2张图片
4.png

执行结果

3.png

Part 3:部分代码解读

  1. 核心SQLInsert Into 新信息 Select * From 原信息 Where (姓名='张三')
  2. 上面SQL由两部分组成:Insert Into 加入新表部分,Select 查询获取拟加入新表的信息
  3. 这种方法要求新信息表中必须有相同的字段

核心SQL

Access/VBA/Excel-15-表信息整体迁移Select+Insert联动_第3张图片
5.png

Part 4:延伸

  • 只从旧信息表中获取2个字段:姓名,语文
Insert Into 新信息 Select 姓名,语文 From 原信息 Where (姓名='李四')

执行结果

6.png

  • 旧信息表中获取所有字段所有记录
Insert Into 新信息 Select * From 原信息

执行结果

7.png


本文为原创作品,如需转载,可加小编微信号learningBin

以上为本次的学习内容,下回见

如发现有错误,欢迎留言指出


更多精彩,请关注微信公众号
扫描二维码,关注本公众号

公众号底部二维码.jpg

你可能感兴趣的:(Access/VBA/Excel-15-表信息整体迁移Select+Insert联动)