設計分析
一般是先資料庫查詢有三種方法
方法一:使用查詢參數構造SQL Select語句,然後使用ADO Command 對象或
RecordSet 執行查詢語句
方法二:使用ADOCommand對象建立參數查詢。
方法三:先執行Select語句擷取資料庫資料,將其存放到RecordSet對象
中,然後執行Recordset對象的Find方法尋找合格記錄 ,或
者設定Recordset對象的Filter屬性篩選合格記錄
技術要領
MSFlexGrid控制項的AddItem 方法用於向控制項添加一行資料。
文法: object.AddItem (string,index)
其中,object為MSFlexGrid控制項名稱,string為包含資料的字串。如果需要同時添加行中的多列資料,可使用定位字元(vbTab)分隔字串。index為新增加行在控制項中的位置,第一行的index為0,如果省略index,則新增行成為控制項最後一行
清除MSFlexGrid控制項中的資料可使用clear方法,如:MSFlexGrid1.clear也可以使用RemoveItem方法來刪除指定的行,如刪除第2行
MSFlexGrid1.RemoveItem(2)
使用command對象建立參數查詢
步驟:
(1)建立command對象,使用?作為select語句中的查詢參數。如:
Objcmd.commandtext="select*from 系統使用者 where 使用者名稱 like?"
(2)使用command對象CreatParameter方法建立參數對象,然後將其添加到command對象的Parameters集合中
如:建立一個名為“使用者名稱”的參數對象,然後將其添加到command對象objcmd的Parameters集合中
dim Parm as new parameter set parm =objcmd.createparameter("使用者名稱",advarchar,adparaminput,10) objcmd.parameters.append parm
(3)設定查詢參數的值。例如
objcmd("使用者名稱")=“admin”
(4)執行command對象的execute方法完成查詢
註:如果查詢參數在建立時沒有指定預設值,則在執行Execute方法前必須設定查詢參數的值,否則將產生錯誤
設計程式介面
編寫代碼
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 '顯示查詢結果 Dim n As Integer n = 0 While Not objRs.EOF MSFlexGrid1.AddItem (objRs!使用者名稱 & vbTab & objRs!口令 _ & vbTab & objRs!身份) n = n + 1 objRs.MoveNext Wend '顯示記錄的條數 Label4 = "共獲得" & n & "條查詢結果" End Sub '表單載入時建立資料庫的串連和command對象,並建立參數查詢。Private Sub Form_Load() Set objCn = New Connection '執行個體化connection對象objcn strcn = "provider=microsoft.jet.oledb.4.0;persist security info=false;" & _ "data source=" & "D:\VB98\資料查詢\執行個體5.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 SubPrivate Sub form_unload(cancel As Integer) Set objCmd = Nothing objCn.Close Set objCn = NothingEnd Sub
運行結果