首頁>Club>
14
回覆列表
  • 1 # 使用者2066251545582

    首先,我們需要引用ADO.具體的方法是,在"工程" -- "引用" 中,找到"Microsoft ActiveX Data Object *.* Library",這裡的"*.*"是指的時ADO的版本號,一般來說,應用程式或ActiveX控制元件都具有向下相容性,所以我們儘可能選擇比較新的版本.以確保程式在能識別舊版本Access的同時,也能識別較新版本的Access.然後我們需要在程式中建立一個物件.就好比我們在窗體上新增一個FileBox才能看到檔名一樣,只有建立了ADO物件,我們才能夠訪問資料庫.常用的物件有兩個,Connection和Recordset.建立這兩個物件的具體方法是:1.在引用後,使用New關鍵字,如 Private Conn As New

    ADODB.Connection

    Private Reco As New ADODB.Recordset2.在沒引用時,用CreateObject建立物件: Dim Conn,Reco Set Conn = CreateObject("ADODB.Connection") Set Reco = CreateObject("ADODB.Recordset")建立了物件之後,下一步我們要做的就是開啟資料庫了.先看下面的程式碼,可以成功的開啟資料庫.

    Conn.open

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Main.mdb" 這句程式碼打開了D盤中的

    Main.mdb

    這個資料庫.

    Connection.Open

    方法的第一個引數是連線程式碼,它將傳遞給系統的資料庫引擎.前半部分"Provider= Microsoft.Jet.OLEDB.4.0",它表示了資料庫的型別.不同的資料庫可能會不同.後半句"Source=d:\main.mdb"它表示了資料庫所在的絕對路徑.開啟資料庫之後,還要開啟表.假如資料庫中有一個表,表名為"Users",欄位有兩個,一個為使用者名稱,一個為密碼.那麼看以下程式碼.1.想返回"Users"中,[使用者名稱]為"去年煙花"的[密碼]

    Recordset.open

    "Select 密碼 From Users Where 使用者名稱="去年煙花"",Connection,1,1之後我們就可以把使用者輸入的密碼進行比較,看是否允許登入. If

    Recordset.eof

    and

    Recordset.bof

    then Msgbox "使用者不存在!",16 Else If PassWord =Recordset("密碼")

    .value

    then msgbox "登入成功!",64 Else msgbox "密碼錯誤!",32 End If End If Recordset.Close2.假設Admin已經成功登入系統,我們想把所有的使用者名稱和密碼都顯示出來

    Recordset.open

    "Select * From Users",Connection,1,1 這時,表已經被開啟,我們就用以下程式碼把它顯示出來. Do whlie Not

    Recordset.eof

    Print "使用者名稱: " & Recordset("使用者名稱")

    .value

    & "密碼: " & Recordset("密碼")

    .value

    Recordset.MoveNext

    Loop

    Recordset.Close

    由以上程式碼示例可以看出,開啟表時,可以只打開其中的一個欄位,也可以開啟所有.第一個引數是SQL語句

    .Select

    [欄位名] From 表名 [Where 條件]這裡的條件可以省略.且欄位名也可以用"*"來代替所有欄位.需要注意的是,如果你用(1)中的方法開啟,那麼(2)後面顯示的程式碼就不能再用在(1)中.因為(1)裡並沒有開啟[使用者名稱]欄位,所以這一句Recordset("密碼")就沒有值存在,還有可能出錯.後面的條件,可以用"="、">"、"<"等運算子.比如 "Where ID > 32".(這裡假設[ID]為數字型.)這是開啟的部分.第二個很重要的部分就是查詢記錄.資料庫它並不是把所有記錄全部放到一個變數中備用的.而是以"當前記錄"的形式來返回一個值.所以我們想從中找到有用的資訊,就必須要對資訊進行定位/篩選.定位: 移動到下一條

    Recordset.MoveNext

    移動到上一條

    Recordset.MovePrevious

    移動到最後一條

    Recordset.MoveLast

    移動到第一條

    Recordset.MoveFrist

    移動到某一條

    Recordset.Move

    Number篩選:

    Recordset.Find

    "條件"如:[用方法(2)開啟表之後] Private Sub Command1_Click()

    Recordset.Find

    "使用者名稱=" & "text1.text" If

    Recordset.Eof

    <> True Then Msgbox "該使用者的密碼是:" & Recordset("密碼").value,64 Else Msgbox "未找到該使用者的資料!",16 End If End SubMoveNext 只有當Eof不為True時,才可用,否則發生錯誤.而MovePrevious剛是Bof不為True時.... 而只要Eof 和 Bof中有一個不為真時,也就是說只要有一條記錄時,它就可以使用

    .Find

    方法中的條件和Open時的第一個引數中的條件表述方法是完全一致的.當在已開啟的記錄集中,找不到該記錄時,Eof為True.找到則當前的值就是符合條件的記錄.第三個部分就是新增/修改記錄. 修改記錄很簡單,先按以上的方法找到相關記錄之後,給記錄賦值就可以了. 比如:[(修改密碼)按方法(1)開啟表之後] Recordset("密碼")

    .value

    = "123456"

    Recordset.Updata

    需要注意的就是,在修改完成後,要呼叫Updata方法,這樣修改才能生效.而新增記錄則可以用以下程式碼來實現:

    Recordset.addnew

    Recordset("使用者名稱")

    .value

    = "Admin" Recordset("密碼")

    .value

    = "Admin"

    Recordset.Updata

    這裡,先要呼叫Addnew方法,增加一條新記錄,然後對這個新記錄中的各欄位賦值,最後再呼叫Updata方法.到這裡就差不多了,最後說一下上面提到的幾個方法

    .Recordset.Open

    SQL語句,資料來源,遊標型別,開啟方法SQL語句不用說了,就是Select那啥的,目的就是按要求從表中返回資料 資料來源就是一個開啟之後的Connection物件. 去他媽的遊標型別,填1就可以了 [偷笑ing] 開啟方法對應了幾個常數,具體哪幾個可以從物件瀏覽器裡看. 對應數值的意義: 1 只讀 2 獨佔 3 可寫 4 自已可寫,別人可讀

    Connection.open

    連線程式碼,伺服器使用者名稱,密碼 這裡的連線程式碼就不在多說了,伺服器使用者名稱,密碼只有在連線遠端資料庫時才用到.

  • 中秋節和大豐收的關聯?
  • 三年級上冊的詞可以怎麼寫?