初識vb資料庫開發之例項5(資料查詢)

2021-08-27 02:40:43 字數 3282 閱讀 7905

設計分析

一般是先資料庫查詢有三種方法

方法一:使用查詢引數構造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)

(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)

set parm = objcmd.createparameter("身份", advarchar, adparaminput, 10)

label4 = "" '清除標籤4

end sub

private sub form_unload(cancel as integer)

set objcmd = nothing

objcn.close

set objcn = nothing

end sub

執行結果

初識vb資料庫開發之例項5(資料查詢)

設計分析 一般是先資料庫查詢有三種方法 方法一 使用查詢引數構造sql select語句,然後使用ado command 物件或 recordset 執行查詢語句 方法二 使用 adocommand 物件建立引數查詢。方法三 先執行select語句獲取資料庫資料,將其存放到recordset物件 中...

初識vb資料庫凱發之例項3(使用資料繫結訪問資料)

製作特點 使用adodata控制項建立access資料庫連線,使用文字框的資料繫結特性來顯示資料 設計分析 首先用ado data控制項連線資料庫獲得資料來源,然後將該資料來源繫結到文字框來顯示資料.優點 使用ado data 控制項可以在不編寫 的情況下輕鬆實現資料庫訪問.訪問資料庫的方式 方法1...

資料庫優化之例項和故事

資料庫優化之例項和故事 簡要 每一項技術都離不開資料庫,資料庫猶如人的大腦 密不可分,一旦出了問題 故障 停頓,卡主後果可想而知 潛心學習資料庫優化3個月,現在將學到的經驗分享給大家,希望能夠跟各位php大神分享和學習探索,如果有不對或者好的建議告知下 備份資料,是每個專案維護的日常工作 有利於資料...