VB操做Access數據庫方法

'一、首先聲明一個連接對象,聲明記錄集對象,定義一個數據連接字符串數據庫

'方法1:ide

Dim adocn As New ADODB.Connection  '聲明一個連接對象對象

'方法2:排序

'Dim adocn As ADODB.Connection索引

'Set adocn = New ADODB.Connection字符串

Dim strconn As String  '定義一個數據連接字符串io

strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\users.mdb"date

adocn.Open strconn    '使用 Connection 的 Open 方法 與數據庫創建鏈接select

Dim adors As New ADODB.Recordset  '聲明記錄集對象權限

二、Recordset集合的經常使用方法
==========================

'1)打開一個表
'------------

Sql = "select * from 表名" 'SQL查詢語句
Set rs = New ADODB.Recordset '新建一個實例
rs.Open Sql, conn '使用 Open 方法打開數據庫中的一個表

'注意,這種打開方式只能使用 rs.MoveNext (即,向後移動行座標)而不能像其餘方向,而且不能修改數據內容
'
'rs.Open Sql, conn,1 '雖然只加了個「1」,但這種方法能夠向任何方向移動行座標。
'
'如下參數表明了這個可選值的含義
'0 = adOpenForwardOnly (默認值)打開僅向前類型遊標。
'1 = adOpenKeyset       打開鍵集類型遊標。
'2 = adOpenDynamic      打開動態類型遊標。
'3 = adOpenStatic       打開靜態類型遊標。
'
'雖然使用以上方法能夠能夠實現行座標(遊標)的任意移動,可是仍然沒法寫入數據。所以須要進一步的對Open 方法進行完善

'rs.Open Sql, conn, 1, 3  '後面的3是肯定讀寫權限的

'如下參數表明了這個可選值的含義
'1 = adLockReadOnly        (默認值)只讀 — 不能改變數據。
'2 = adLockPessimistic     保守式鎖定(逐個) — 在編輯時當即鎖定數據源的記錄。
'3 = adLockOptimistic      開放式鎖定(逐個) — 只在調用 Update 方法時才鎖定記錄。
'4 = adLockBatchOptimistic 開放式批更新 — 用於批更新模式(與當即更新模式相對)。
'
'2)讀寫數據
'----------
'增長一行記錄並對新記錄的內容進行修改並保存能夠以下寫法
rs.AddNew '增長一行記錄
rs("...")="..."    '數據讀寫操做
...
rs.UpDate '保存寫入資料,若是使用只讀權限,則不能使用這個方法
rs.Close  '這個方法用來關閉你所代開的表,若是不使用這個方法也能夠,可是數據庫仍然認爲你在對標進行鎖定,可形成數據庫負擔太重

二、對數據進行篩選和排序
=======================
Sql = "select * from 表名" 'SQL查詢語句
'以上爲打開一個表的全部內容

Sql = "select top 50 * from 表名" 'SQL查詢語句
'以上爲只打開前50行的記錄

Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查詢語句
'以上爲只打開前50行的記錄,而且只打開第一、二、5列數據

Sql = "select * from 表名 where 列名1='" & 字段 & "'" 'SQL查詢語句
'以上爲一個簡單的篩選,表示打開的內容必須符合[列名1='" & 字段 & "'"]的內容
'須要注意的是,數據庫列的類型必須匹配,好比字符串類型須要以單引號括起
'而數字類型則不能用單引號括起
'另外SQL語句還支持通配符,例如 列名1 like '%" & 字段 & "%'" 表示包含[字段]
'在表達式中的匹配
'? _(下劃線) 任何單一字符
'* or %        零個或多個字符
'#             任何單一數字(0 — 9)
'[charlist]    任何在字符表中的單一字符
'[!charlist]   任何不在字符表中的單一字符
'注:根據數據庫的不一樣?、_和*、%的應用有所差異,好比SQL只使用% 和 _ 分別表明多個字符和單一字符

Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 ASC" '對查詢結果進行升序排列
Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC"  '對查詢結果進行降序排列
Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC, ORDER BY 字段2 DESC"  '對查詢結果進行多維降序排列(速度奇慢,不推薦使用)

三、Recordset集合的經常使用屬性方法
==============================
rs.BOF        '是否遊標在最上邊
rs.EOF        '是否遊標在最下邊
rs.RecordCount    '記錄集的行數(若是使用像前類型的遊標,可能返回不許確)
rs.AddNew    '新建一行記錄
rs.Update    '保存當前行被修改的記錄
rs.Delete    '刪除當前行
rs.Close    '關閉記錄集

四、Fields集合的一些屬性的解釋
=============================
'如下爲簡寫,正常狀況須要rs.Fileds.。。。可是Fields屬於Recordset的一個默認集合,所以能夠省略

rs()  '括號內能夠是列名也能夠是列的序號例如:rs("姓名")、rs(3) 都是是能夠的

rs(3).Name  '返回列名
rs(3).Type  '返回列的類型
rs(3).Value '返回當前行的值
rs.Fields.Count '返回列數

 

'VB中,當你打開一個數據集時,須要聲明一個數據集對象,在它的下面會有一個字段集合,這個字段集合就是fields。'使用方法:'rs(數據集對象).fields("字段名稱")或'rs(數據集對象).Fields (字段索引號)

相關文章
相關標籤/搜索