||
教程内容:
1. MSFlexGrid控件
2. ADO Command对象
3. 参数查询
使用ADO Command对象创建参数查询以及查询数据库
使用MSFlexGrid控件以表格的方式显示查询结果
一般实现数据库数据查询有下面几种方法:
1. 使用查询参数构造SQL Select语句,然后使用ADO Command对象或者RecordSet对象执行查询语句
2. 使用ADO Command对象创建参数查询
3. 先执行Select语句获取数据库数据,将获取的数据存放到RecordSet对象中,然后执行RecordSet对象的Find方法查找符合条件的记录,或者设置RecordSet对象的Filter属性选择符合条件的记录
根据使用的数据查询方法,显示查询结果的方式也有一些不同,使用Command对象执行普通查询或者参数查询时,查询返回的时行集而并非记录集。行集不支持标签,因此不能将它作为数据绑定的数据源,在显示查询结果时通常使用MSFlexGrid控件,通过代码将数据填充到控件中进行显示
MSFlexGrid控件中数据的添加和清除
MSFlexGrid控件的AddItem方法用于向控件添加一行数据
Object.AddItem(string,index)
其中object为MSFlexGrid控件名称,string为包含数据的字符串。如果需要同时添加行中的多列数据,可以使用制表符分隔字符串。Index为新增加行在控件中的位置,第一行的index为0,如果省略index,那么新增加的行将成为控件的最后一行
清除MSFlexGrid控件中的数据可以使用clear方法
MSFlexGrid1.Clear
,也可以使用RemoveItem方法来删除指定的行
MSFlexGrid1.RemoveItem(5)
使用Command对象创建参数查询
(1) 创建Command对象,使用?作为Select语句中的查询参数,比如
ObjCmd.CommandText=”SELECT * FROM 系统用户 WHERE 用户名 LIKE ?”
(2) 使用Command对象CreateParameter方法创建参数对象,然后将其添加到Command对象的Parameters集合中,比如
Dim Parm As Parameter
Set Parm=objCmd CreateParameter(“用户名”,adVarChar,adParamInput,10)
(3)设置查询参数的值
objCmd(“用户名”)=”admin”
(4)执行Command对象的Execute方法完成查询
'定义Connection与Command对象
Dim objCn As Connection, objCmd As Command
Private Sub cmdQuery_Click()
Dim objRs As New Recordset '定义局部记录集对象
objCmd("用户名") = "%" & txtUser & "%" '获得查询参数
objCmd("身份") = "%" & txtStatus & "%"
Set objRs = objCmd.Execute() '执行查询,获得查询结果记录集
MSFlexGrid1.Cols = objRs.Fields.Count
'显示列名
For i = 0 To objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
Next
'显示查询结果
n = 0
While Not objRs.EOF
MSFlexGrid1.AddItem (objRs!用户名 & vbTab & objRs!口令 & vbTab & objRs!身份)
n = n + 1
objRs.MoveNext
Wend
'显示获得的记录条数
Label4 = "共获得" & n & "条查询结果"
End Sub
Private Sub Form_Load()
Set objCn = New Connection '实例化Connection对象objCn
strcn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & _
"Data Source=" & App.Path & "\数据库\db1.mdb"
objCn.ConnectionString = strcn '创建数据库连接
objCn.Open
'创建执行参数查询的Command对象objCmd
Set objCmd = New Command
Set objCmd.ActiveConnection = objCn
With objCmd
.CommandText = "SELECT * FROM 系统用户 WHERE 用户名 LIKE ? " & _
"AND 身份 LIKE ?"
.CommandType = adCmdText
End With
'为Command对象objCmd创建参数
Dim Parm As New Parameter
Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("身份", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Label4 = "" '清除标签4
End Sub
Private Sub Form_Unload(Cancel As Integer)
'释放Command和Connection对象
Set objCmd = Nothing
objCn.Close
Set objCn = Nothing
End Sub
|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )
GMT+8, 2024-11-25 08:31 , Processed in 0.056823 second(s), 17 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.