上一篇講到了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 = objcnobjrs.Open (strSQL)
b,關閉資料庫,釋放對象:
objcn.CloseSet objrs = NothingSet objcn = Nothing
2.在記錄瀏覽例子中:
a,顯示目前記錄:
txtUserName = objrs.Fields("使用者名稱").ValuetxtPassword = objrs.Fields("口令").Valuetxtmsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
b ,向前向後翻記錄:
objrs.MovePrevious'使前一記錄成為目前記錄
'如果記錄指標指向第一個記錄之前,則使其指向第一個記錄集。Ifobjrs.BOF Then objrs.MoveFirst objrs.MoveNext'使下一記錄成為目前記錄If objrs.EOF Thenobjrs.MoveLast
d.更新儲存記錄:
objrs.Fields("使用者名稱").Value = txtUserNameobjrs.Fields("口令").Value = txtPasswordobjrs.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 RecordsetFor 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對象objcmdSet objcmd.ActiveConnection = objcnWith objcmd .CommandText = "select * from 系統使用者 where 使用者名稱 like?" & "and 身份 like?" .CommandType = adCmdTextEnd With
b,使用command對象 createparameter建立參數對象,然後將其添加到command對象的parameters集合中。
Dim parm As New ParameterSet parm = objcmd.CreateParameter("使用者名稱", adVarChar, adParamInput, 10)objcmd.Parameters.Append parmSet 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).NameNext'顯示查詢結果n = 0While Not objrs.EOF MSFlexGrid1.AddItem (objrs.Fields(0) & vbTab & objrs.Fields(1) & vbTab & objrs!身份) '在這裡objrs.fields(0)和objrs!使用者名稱 的效果是相同的 n = n + 1 objrs.MoveNextWend
這些代碼都是一些經典的實現部分,非常有用,為我們後邊的學生資訊系統會打下很好的基石!就像我們蓋房子一樣,這些都是磚瓦泥灰,是我們砌成高樓大廈的基礎!