国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現!

在VB中用DAO實現數據庫編程

2004-02-11 eNet&Ciweek

  DAO(Data Access Object)全稱為數據訪問對象,它是數據庫編程的重要方法之一。DAO的一種面向對象的界面接口,特色為它不是可視化的對象,使用它全部都要靠編碼來完成,DAO是設計關系型數據庫系統(tǒng)結構的對象類的集合。它提供了完成管理這樣一個系統(tǒng)所需的全部操作的屬性和方法,包括創(chuàng)建數據庫,定義表、字段和索引,建立表間的關系,定位和查詢數據庫等工具。由于ADO(ActiveX Data Object ActiveX 數據對象)的出現,DAO的使用已大大減少,但它無須使用ODBC(開放數據庫連接)便可連接各個數據源,因而我們仍經常用經典的DAO。下面我向大家詳細介紹如何使用DAO編程。

  DAO使用之前必須先引用。方法為打開VB6.0 , 從VB的"工程"菜單中,選擇"引用"項,當"引用"對話框出現后,從庫的列表中,選擇"Microsoft DAO 3.51 Object Library",單擊"確定"?,F在便可以使用DAO對象庫提供的所有對象進行編程了。

  一、 創(chuàng)建數據庫:

  在DAO中用CreatDataBase方法可以根據用戶需求動態(tài)的創(chuàng)建數據庫。這一點在程序中是非常有用的。用戶可以根據要求實時建立數據庫。建立過程如下:  

  Private Sub Com_creat_Click()

  On Error GoTo Err100

  CreatDataBase "數據庫名稱.mdb" ,dbLangGeneral

  Msgbox "數據庫建立完畢"

  Exit Sub

  Err100:

  MsgBox "不能建立數據庫! " & vbCrLf & vbCrLf & Err.Description, vbInformation

  End Sub

  這樣,數據庫便在當前默認的路徑下建立了。

  二、 創(chuàng)建表與字段:

  建立數據庫后,則需要在該數據庫中建立表,這要用到TableDef 對象。先定義一個TableDef類型的對象,然后用TableDef集合中Append方法將之追加到數據庫當中去。并且同時定義一個Field對象,用CreatFiele的方法創(chuàng)建一個Field對象,向表中添加字段。例如:

  

  Private Sub Com_table_Click()

  On Error GoTo Err100

  Dim Defdb As DataBase

  Dim NewTable As TableDef

  Dim NewField As Field

  Set Defdb = Workspaces(0).OpenDatabase (App.path & "\數據庫名稱.mdb" ,0, False)

  Set NewTable = DefDataBase.CreateTableDef("表名")

  Set NewField = DefTable.CreateField( "字段名" , dbText ,6) ′創(chuàng)建一個字符型的字段,長度為6個字符

  DefTableFields.Append NewField ′字段追加

  DefDatabase.TableDefs.Append NewTable ′表追加

  Msgbox " 表建立完畢 "

  Exit Sub

  Err100:

  MsgBox "對不起,不能建立表。請先再建表前建立數據庫?", vbCritical

  End Sub

  一個數據庫可能有十幾個甚至幾十個字段,一個表中有多少個字段,則要創(chuàng)建多少次并要追加到表中。每建立一個字段后都要用到字段追加命令,但是表追加只需在所有字段建立完成后用一條命令即可完成?!  ?

  三、 打開數據庫:

  在VB中,對一個對象變量引用之前必須加以說明。DAO也是如此,必須先聲明數據庫變量,例如:Dim dbase As Database 。建立了數據庫對象變量后,我們便可打開數據庫了,在一般情況下都只是訪問一個數據庫,當打開數據庫后再對數據庫中的各個記錄進行操作,這就要用到Recordset 對象建立記錄集。例如:  

  Private Sub Command_OpenDatabase_Click()

  Dim dbase as Database

  Dim rs As Recordset

  Set dbase = OpenDatabase ( App.path & "\數據庫名稱.mdb" )

  Set rs = dbase.OpenRecordset ( " select * from 表名 " )

  End Sub

  這樣,數據庫中的記錄便放到Recordset中,可以進行后續(xù)操作了。

  四、 使用數據庫:

  當打開數據庫,建立Recordset 記錄集后,便可瀏覽、刪除、添加、查找數據庫中的內容。

 ?。ㄎ赐辏?br>   1) 向前瀏覽

    Private Sub cmd_previous_Click()

  rs.MovePrevious

  if rs.BOF =True then

  rs.Movelast

  End if

  for i = 0 to 11

  label(i).caption = rs.Fields(i) & ""

  next

  End Sub

  在字段賦值的末尾加上""可以避免許多不必要的錯誤,在數據庫中,當一個字段為空的時候,它的值為Null ,Null表示什么也沒有。因此無法賦值,賦給變量時會出錯。但我們加上""空格符時,便有效的避免了賦值錯誤,這個技巧非常的有用。

  2) 向后瀏覽  

  Private Sub cmd_next_Click()

  rs.MoveNext

  If rs.EOF =True then

  rs.MoveFirst

  End if

  for i = 0 to 11

  label(i).caption = rs.Fields(i) & ""

  next

  End Sub

  3) 刪除記錄

  Private Sub cmd_del_Click()

  On Error GoTo handle

  Dim msg as string

  msg = "是否要刪除記錄"& Chr$(10)

  msg = msg & label(0) ′把刪除記錄的代號加入msg中

  If Msgbox(msg , 17 , "刪除記錄") <> 1 Then Exit sub

  rs.delete

  rs.Movenext

  If rs.EOF = True Then

  rs.MovePrevious

  End if

  for i = 0 to 11

  label(i).caption = rs.Fields(i) & ""

  next

  handle:

  MsgBox "該記錄無法刪除!!!"

  Exit Sub

  End Sub

  4) 添加記錄

  向數據庫中添加記錄比較麻煩一點,大致分為三步:首先,用AddNew方法向數據庫添加一個新的空白記錄;其次,將要輸入的數據分別賦到數據庫的各個字段中;最后,用Updata的方法,把記錄寫到數據庫中去。例如: 

  Private Sub cmd_new_Click()

  rs.AddNew

  For i = 0 to 11

  rs.Fields(i) = TextBox(i).Text

  Next

  rs.Updata

  End Sub

  5)查找記錄

  查找記錄可以用Find方法,例如:  

  Private Sub Cmd_search_Click()

  Set rs = dbase.openRecordset("表名",dbopenDynaset)

  rs.findfirst "字段名= ' " & Text.Text & " ' " ′ Text.Text是輸入的關鍵字

  if rs.Nomatch = True then

  Msgbox "對不起,沒有該記錄"

  else

  For i = 0 to 11

  label(i).caption = rs.Fields(i) & ""

  Next

  End if

  rs.close

  End Sub

  以上只是大致介紹了DAO的一些最常用、最典型的用法,真正要熟練掌握它需要不懈的努力。當你很好的理解了DAO后,對學習新的RDO和ADO也有很大的幫助。并且DAO和ADO可以同時使用,DAO的缺陷在于查找功能不強,沒有ADO方便,但動態(tài)創(chuàng)建數據庫卻遠超ADO,因此有時二者結合更強大。我們相信DAO一定會幫你節(jié)約寶貴時間,為工作提供方便。

相關頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com