红皮书再总结——实例五

实例5 数据查询

(一)制作特点:

第一、使用ADO Command对象创建参数查询以查询数据库

第二、使用MSFlexGrid控件以表格的方式显示查询结果

(二)设计分析:

方法一、使用查询参数构造SQL Select语句,然后使用ADO Command对象或RecordSet对象执行查询语句。

方法二、使用ADO Command 对象创建参数查询√

方法三、先执行Select语句获取数据库数据,将其存放到RecordSet对象中,然后执行Recordset对象的Find方法查找符合条件的记录,或者设置Recordset对象的Filter属性筛选符合条件的记录。

(三)技术要领:

1.MSFlexGrid控件中数据的添加和清除

添加:object.AddItem(string,index)

清除:MSFlexGrid.Clear

删除指定行:MSFlexGrid.RemoveItem(2)

2.使用Command对象创建参数查询

①创建Command对象:(?作为Select语句中的查询参数)

objCmd.CommandText="SELECT * FROM 系统用户 WHERE 用户名 LIKE ?"

②使用Command对象:

Dim Parm As New Parameter

Set Parm=objCmd.CreateParameter("用户名",adVarChar,adParamInput,10)

objCmd.Parameters.Append Parm

③设置查询参数的值

objCmd("用户名")="admin"

④执行Command对象的Execute方法完成查询

(四)操作过程:

(1)创建数据库

实例5真是错误百出,这5个例子我用的都是一个数据库,后来发现书中有三个字段“用户名”、“口令”和“身份”,但由于我用的实例1的数据库,只有两个字段。所以重新创建一个数据库,添加三个字段。

(2)设计窗体

①工程——部件——Microsoft FlexGrid Control 6.0

②三个标签框+两个文本框+一个命令按钮+MSFlexGrid控件

(3)编写代码

Private Sub cmdQuery_Click()
    Dim objRs As New Recordset                   '定义局部记录集对象
        objCmd("用户名") = "%" & txtUser & "%"    '获得查询参数
    Set objRs = objCmd.Execute()                 '执行查询,获得查询结果记录集
        MSFlexGrid1.Cols = objRs.Fields.Count     '显示列名,cols:列rows:行
        For i = 0 To objRs.Fields.Count - 1
            MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
        Next
    n = 0
    If txtUser.Text = "" Then
        MSFlexGrid1.Clear
        MSFlexGrid1.Rows = 1
        Else
    While Not objRs.EOF
        MSFlexGrid1.Clear                                         
        For i = 0 To objRs.Fields.Count - 1
            MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
        Next
        MSFlexGrid1.Rows = 1
        MSFlexGrid1.AddItem (objRs!用户名 & vbTab & objRs!口令) 'vbTab:制表符。
        n = n + 1
        objRs.MoveNext
    Wend                                    '显示获得的记录条数                                                               
        Label4 = "共获得" & n & "条查询结果"
    End If
End Sub
Private Sub Form_Load()
    MSFlexGrid1.Rows = 1                     '新增加
    Set objCn = New Connection               '实例化Connection对象objCn
    strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security info=False;" & "Data Source=" & "C:\Users\TXG\Desktop\实例5.mdb"
    objCn.ConnectionString = strCn          '创建数据库连接
    objCn.Open                    '创建执行参数查询的Connection对象objCmd
    Set objCmd = New Command
    Set objCmd.ActiveConnection = objCn
    With objCmd
        .CommandText = "SELECT*FROM 系统用户 WHERE 用户名 LIKE ?"
        .CommandType = adCmdText

    End With                              '为Command对象objCmd创建参数
    Dim parm As New Parameter
    Set parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
    objCmd.Parameters.Append parm
    Label4 = ""                           '清除标签4
End Sub

(五)连接数据库方式:

第一种,使用ADO connection对象,通过编写代码访问数据库。

猜你喜欢

转载自blog.csdn.net/weixin_42835409/article/details/81435309