Access/VBA/Excel-获取数据库数据-08

微信公众号原文

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

  • 这个系列开展一个新的篇章,重点关注Access数据库
  • 主体框架:以Excel作为操作界面,Access作为数据库
  • 之前大都是讲如何将数据存进数据库的,今天讲讲如何将数据库中数据拿出来
  • 涉及知识:ADOSQL:Select

Part 1:目标

Access/VBA/Excel-获取数据库数据-08_第1张图片
1.png
  1. 将数据库中数据表学生信息表中的所有信息读入当前工作簿示例工作表
  2. 逻辑过程
  • 连接数据库
  • 根据需求确定SQL语句
  • 执行SQL语句,得到recordset
  • recordset写入工作表(字段名+所有记录 列名+每一行)
  • 断开与数据库的连接

Part 2:代码

Sub test()
    Dim cnn As New ADODB.Connection '连接
    Dim rs As New ADODB.Recordset
    Dim SQL As String
    Dim tblName
    Dim dbAddr
    
    dbAddr = ThisWorkbook.Path & "\学生信息.accdb"
    tblName = "学生信息表"
    
    '连接数据库
    With cnn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .Open "Data Source=" & dbAddr
    End With
    
    SQL = "Select * from " & tblName
    
    Set rs = cnn.Execute(SQL)

    Dim sht
    Dim fildNum
    
    Set sht = ThisWorkbook.Worksheets("示例")
    
    fildNum = rs.Fields.Count
    For j = 0 To fildNum - 1 Step 1
        fildName = rs.Fields(j).Name
        sht.Cells(1, j + 1) = fildName
    Next j
    
    sht.Cells(2, 1).CopyFromRecordset rs
    
    cnn.Close
    Set rs = Nothing
    Set cnn = Nothing

End Sub

代码截图

Access/VBA/Excel-获取数据库数据-08_第2张图片
3.png

运行过程

Access/VBA/Excel-获取数据库数据-08_第3张图片
1.gif

Access与Excel数据对比

Access/VBA/Excel-获取数据库数据-08_第4张图片
2.png

Part 3:部分代码解读

  1. Select * from " & tblName,中文释义:从工作表中获取所有信息
  2. rs.Fields.Count获取字段数目
  3. rs.Fields(j).Name获取字段的名称(列名)
  4. CopyFromRecordset复制整个rs(所有记录)

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

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

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


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

Access/VBA/Excel-获取数据库数据-08_第5张图片
公众号底部二维码.jpg

你可能感兴趣的:(Access/VBA/Excel-获取数据库数据-08)