VB操作Access資料庫方法

來源:互聯網
上載者:User

標籤:des   io   os   使用   ar   for   資料   sp   cti   

‘1、首先聲明一個連結化物件,聲明記錄集對象,定義一個資料連結字串

‘方法1:

Dim adocn As New ADODB.Connection  ‘聲明一個連結化物件

‘方法2:

‘Dim adocn As ADODB.Connection

‘Set adocn = New ADODB.Connection

Dim strconn As String  ‘定義一個資料連結字串

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

adocn.Open strconn    ‘使用 Connection 的 Open 方法 與資料庫建立串連

Dim adors As New ADODB.Recordset  ‘聲明記錄集對象

2、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  ‘這個方法用來關閉你所代開的表,如果不使用這個方法也可以,但是資料庫仍然認為你在對標進行鎖定,可造成資料庫負擔過重

2、對資料進行篩選和排序
=======================
Sql = "select * from 表名" ‘SQL查詢語句
‘以上為開啟一個表的所有內容

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

Sql = "select top 50 列名1,列名2,列名5 from 表名" ‘SQL查詢語句
‘以上為只開啟前50行的記錄,並且只開啟第1、2、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"  ‘對查詢結果進行多維降序排列(速度奇慢,不推薦使用)

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

4、Fields集合的一些屬性的解釋
=============================
‘以下為簡寫,正常情況需要rs.Fileds.。。。但是Fields屬於Recordset的一個預設集合,因此可以省略

rs()  ‘括弧內可以是列名也可以是列的序號例如:rs("姓名")、rs(3)都是是可以的

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

 

VB操作Access資料庫方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.