上一篇講到了 VB 與數據庫交互的必備知識,這張從經典實例的方向出發,講述一些經典的代碼。
1,在系統登錄的例子中:
a, 建立數據庫連接,和執行查詢命令 :
'建立數據庫連接
set objcn=new Connection'實例化Connection對象
objcn.ConnectionString = "Provider=Microsoft.jet.OLEDB.3.51;" & _
"Data Source =" & App.Path & "\實例1.mdb" '連接數據庫,包括連接方式和數據源路徑
objcn.Open
'執行查詢命令,獲得用戶登錄口令
strSQL = "select 口令 from 系統用戶 where 用戶名='" & UserName & "'"
Set objrs.ActiveConnection = objcn
objrs.Open (strSQL)
b, 關閉數據庫,釋放對象 :
objcn.Close
Set objrs = Nothing
Set objcn = Nothing
2.
在記錄瀏覽例子中
:
a,顯示當前記錄:
txtUserName = objrs.Fields("用戶名").Value
txtPassword = objrs.Fields("口令").Value
txtmsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
b ,
向前向后翻記錄:
objrs.MovePrevious'使前一記錄成為當前記錄
'如果記錄指針指向第一個記錄之前,則使其指向第一個記錄集。
Ifobjrs.BOF Then objrs.MoveFirst
objrs.MoveNext'使下一記錄成為當前記錄
If objrs.EOF Thenobjrs.MoveLast
d. 更新保存記錄 :
objrs.Fields("用戶名").Value = txtUserName
objrs.Fields("口令").Value = txtPassword
objrs.Update '執行更新操作
3,在數據綁定瀏覽記錄實例中,主要使用了ADO Data控件
這個例子主要是通過ADD Data控件將數據庫和VB控件連接起來了,通過ADDData控件的前后按鈕,就可以將數據庫中數據瀏覽的很好!
4,在分頁顯示記錄中,
使用了DataGrid控件來顯示數據,中間通過一個新的記錄集,將分頁的數據傳到Data Grid 控件上,這樣來實現分頁顯示數據的。
在這里我想說一下datagrid控件和msflexgrid控件的區別:
在分頁顯示記錄中需要顯示當前記錄頁數據,方法一:使用DataGrid控件;DataGrid控件可顯示記錄集中的全部數據,所以不能直接將分頁的記錄集綁定到DataGrid控件,需要先將當前記錄頁中的記錄復制到一個新的記錄集中,再將其綁定到DataGrid控件,便可顯示當前記錄也數據。方法二:使用MSFlexGrid控件;其可在設計時將其綁定到Data控件,在運行時,則可通過設置控件的TextMatrix屬性來顯示數據。MSFlexGrid控件比較靈活因為其有TextMatrix屬性(設置和返回控件任意單元格的文本內容),所以在做顯示數據時,直接可通過循環在其中填充數據(數據有靈活性,可填充一部分,也可全部填充,所以分頁顯示效果較容易實現)。
a , 創建一個局部recordset對象保存objrs當前記錄頁數據 :
Dim objdatasource As New Recordset
For intRecord = 0 To objrs.Fields.Count - 1
objdatasource.Fields.Append objrs.Fields(intRecord).Name, adVarChar,
objrs.Fields(intRecord).DefinedSize
Next
b,將當前頁的記錄數據寫到objDataSource中:
For intRecord = 1 To objrs.PageSize '將當前記錄頁中數據寫入objdatasource中
objdatasource.AddNew
objdatasource!用戶名 = objrs!用戶名
objdatasource!口令 = objrs!口令 ' 感嘆號“!”常用于當一個控件作為一個特性訪問的情況下,
'例如如引用Fomr2中Text1文本框文本屬性時,可采用response$=Form2!text1.text語法格式。
objdatasource!身份 = objrs!身份
objrs.MoveNext
If objrs.EOF Then Exit For
Next
5 ,在數據查詢實例中, 本例使用了 ADO Command 對象創建參數查詢。
a,創建執行參數查詢的Command對象objcmd:
Set objcmd = New Command '創建執行參數查詢的command對象objcmd
Set objcmd.ActiveConnection = objcn
With objcmd
.CommandText = "select * from 系統用戶 where 用戶名 like?" & "and 身份 like?"
.CommandType = adCmdText
End With
b,
使用
command
對象
createparameter
創建參數對象,然后將其添加到
command
對象的
parameters
集合中。
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
c, 獲得查詢參數,執行查詢結果:
Dim objrs As New Recordset '定義局部記錄集對象
objcmd("用戶名") = "%" & txtuser & "%" '獲得查詢參數,%作用是,取只有包含txtuser字符串的即可
objcmd("身份") = "%" & txtstatus & "%"
Set objrs = objcmd.Execute() '執行查詢,獲得查詢結果記錄集
MSFlexGrid1.Cols = objrs.Fields.Count
d,
顯示列名,和查詢結果
:
'顯示列名
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.Fields(0) & vbTab & objrs.Fields(1) & vbTab & objrs!身份)
'在這里objrs.fields(0)和objrs!用戶名 的效果是相同的
n = n + 1
objrs.MoveNext
Wend
這些代碼都是一些經典的實現部分,非常有用,為我們后邊的學生信息系統會打下很好的基石!就像我們蓋房子一樣,這些都是磚瓦泥灰,是我們砌成高樓大廈的基礎!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
