注册 登录
Office中国论坛/Access中国论坛 返回首页

leolong的个人空间 http://www.office-cn.net/?155046 [收藏] [复制] [分享] [RSS]

日志

VB开发数据库之数据查询

已有 2305 次阅读2009-4-28 18:05 |个人分类:VB相关|

教程内容:

 

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)

其中objectMSFlexGrid控件名称,string为包含数据的字符串。如果需要同时添加行中的多列数据,可以使用制表符分隔字符串。Index为新增加行在控件中的位置,第一行的index0,如果省略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方法完成查询

 

 

 

 

 

 

'定义ConnectionCommand对象

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)

    '释放CommandConnection对象

    Set objCmd = Nothing

    objCn.Close

    Set objCn = Nothing

End Sub

全部作者的其他最新日志

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 16:11 , Processed in 0.063873 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部