系统:Windows 7 软件:Excel 2010 / Access 2010 这个系列开展一个新的篇章,重点关注Access数据库 主体框架:以Excel作为操作界面,Access作为数据库 今天讲讲如何将数据库中满足要求的数据拿出来 涉及知识:ADO ,SQL:Select Where or and in
Part 1:目标目标1:将数据库中数据表学生信息表中的语文成绩大于85分且学号大于4的人员信息读入当前工作簿示例工作表 目标2:将数据库中数据表学生信息表中姓名为张三或者小红的人员信息读入当前工作簿示例工作表 逻辑过程 实现两个目标只有SQL语句不同,其余一致 目标1:SQL = 'Select * from ' & tblName & ' where 语文成绩>85 and 学号>4' 目标2:SQL = 'Select * from ' & tblName & ' where 姓名 in('张三','小红')'
目标1
目标2
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 & ' where 语文成绩>85 and 学号>4' ' SQL = 'Select * from ' & tblName & ' where 姓名 in('张三','小红')'
Set rs = cnn.Execute(SQL) Dim sht Dim fildNum Set sht = ThisWorkbook.Worksheets('示例')
sht.Cells.ClearContents
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
代码截图
Part 3:部分代码解读SQL = 'Select * from ' & tblName & ' where 语文成绩>85 and 学号>4' ,中文释义:从工作表中获取满足语文成绩>85且学号>4的所有信息
SQL = 'Select * from ' & tblName & ' where 姓名 in('张三','小红')' ,中文释义:从工作表中获取满足姓名为张三或者小红的所有信息,也可以使用or 来实现该功能
相关文章:Access/VBA/Excel-单表筛选数据-09
本人 人生若只如初见
何事秋风悲画扇
|