首頁 專題 Access 利用ADO技術操作access資料庫的方法

利用ADO技術操作access資料庫的方法

Nov 17, 2020 pm 04:22 PM
access 資料庫

利用ADO技術操作access資料庫的方法

首先我們來介紹下ADO物件:

1、Access內嵌的VBA是用ADO技術開發資料庫應用的主要工具,ADO是目前Microsoft通用的資料存取技術;

2、 ADO物件模型包括:Connection、Recordset、Record、Command、Parameter、Field、Property、Stream、Error九個物件;

相關建議: access資料庫教學

3、主要的ADO對象介紹:

1)Connection對象:ADO對像模型中的最進階對象,用來實現應用程式與資料來源的連接;

2)Command物件:主要在VBA中使用SQL語句存取、查詢和修改資料庫中的數據,實作Recordset物件無法實現的操作(資料表層級的操作),可以使用DoCmd代替;

3)Recordset對象:ADO最常用的、重要的對象,可以存取表和查詢對象,傳回的記錄儲存在Recorderset對像中,主要執行的操作:

     ①查詢資料表中的資料;

     ②在資料表中新增資料;

     ③更新資料表中的資料;

     ④刪除資料表中的特定資料;

     ④刪除資料表中的特定資料;

#     ④刪除資料表中的特定資料;

在Access中引用ADO物件

1、Access引用ADO的步驟:

     ①宣告、初始化Connection物件;

     ②建立Recordset物件,程式完成各各各種操作;

     ③關閉ADO物件;

#2、宣告、初始化Connection物件

'宣告Connection物件:一般使用cn做變數的命名前綴;

Dim coName As ADODB.Connection
登入後複製

'初始化Connection對象,連接目前資料庫;

Set cnName = CurrentProject.Connection
登入後複製

3、宣告和開啟Recordset物件

1)宣告、初始化Recordset物件

Dim rsName As ADODB.Recoreset
set rsName = new ADODB.Recordset
登入後複製

2)開啟一個Recordset物件利用ADO技術操作access資料庫的方法

使用Recordset的Open方法可以開啟資料表、查詢物件、或直接引用SQL查詢語句

rsName.Open source, ActiveConnection, CursorType,LockType,Option
登入後複製

4、關閉Recordset和Connection物件

rsName.Close
cnName.Close
Set rsName = Nothing
Set cnName = Nothing
登入後複製

透過Recordset物件引用記錄欄位

1、引用欄位的方法有2種:直接在記錄集物件中引用欄位名稱;使用記錄集物件的Fields(n)屬性引用;

Code = rsName!字段名
登入後複製

'引用該欄位的第一筆記錄

Code = rsName .Field(n)
登入後複製

'引用該欄位的第n筆記錄,n從0開始,可以用迴圈輸出需要量的記錄

2、如果記錄集欄位包含空格、或是保留字,則引用時必須將該欄位用 [  ] 括起來;

透過Recordset物件瀏覽記錄利用ADO技術操作access資料庫的方法

# 1.Recordset記錄集物件提供了4種方法瀏覽記錄

#2、 BOF、EOF屬性分別記錄指標是否在檔案開始、檔案結尾;

利用ADO技術操作access資料庫的方法

如果記錄集指標指向某記錄時,BOF和EOF都為false;

'新增一個窗體元件的按鈕事件:瀏覽下一筆記錄

Priavte Sub ComomndNext_Click()
     rsDemo.MoveNext
     If rsDemo。EOF Then
          rsDemo.MoveFirst
     End If
End Sub
登入後複製

3、Recordset物件的LockType屬性預設為adLockReadOnly(唯讀)

透過Recordset物件編輯資料

1、用AddNew方法新增記錄

#1)調用記錄集AddNew方法,產生一個空記錄

2)為空記錄的各個字段賦值;

3)用記錄集Update方法更新保持新記錄;

##'新增記錄按鈕事件,假設rsDemo記錄集有欄位Id(int),Name(String),Age(int)

Private Sub CommandAdd_Click()
     rsDemo.MoveLast  '记录集指针移动到记录集最后
     rsDemo.AddNew  '添加一条新纪录   
     rsDemo ! Id = "123"
     rsDemo ! Name = "assad"
     rsDemo ! Age = "18" 
     rsDemo.Update
End Sub
登入後複製

2、用Update方法修改記錄

1)尋找並將記錄集指標移動到需要修改的記錄上;

2)對記錄中的各個欄位的值進行修改;

3)以記錄集Update方法更新保持新記錄;## ####'修改記錄集中Age欄位所有值1;###
Private Sub UpdateAge() 
     rsDemo.MoveFirst
     Do
          Dim Code as Integer
          Code = rsDemo ! Age 
          rsDemo ! Age = Code +1
     Loop Until rsDemo.EOF
     rsDemo.Update
End Sub
登入後複製
###3、用Delete方法刪除記錄######1)將記錄集指標移到需要刪除的記錄上;## ####2)使用Delete方法刪除目前記錄;######3)將某筆記錄指定為目前記錄###
'删除rsDemo数据集中Age = "18" 的记录
Private Sub DeleteAge(Dim deleteAge as Integer)
     rsDemo.MoveFirst
     Do
          IF rsDemo ! Age == deleteAge Then
               rsDemo。Delete
               rsDemo。MoveNext
          End IF
     Loop Until rsDemo.EOF
End Sub
登入後複製
###註: 一筆記錄被刪除後,Access不會自動是下一筆記錄成為目前記錄,這時要用MoveNext方法將記錄集指針定位到最後一筆記錄中;######透過Command/DoCmd對象使用SQL指令######Access提供了DoCmd對象,其RunSOL方法可以在VBA中使用SQL指令;###
DoCmd.RunSQL "SQL命令"
登入後複製
###or:###
     Dim s AS String
     s = "SQL命令"
     DoCmd.RunSQL s
登入後複製
###1、定義資料######1)來建立資料表##### 格式: Create Table 表名(字段名資料類型.....)###### 如:DoCmd.RunSQL "Create Table 研究生(姓名text(6),年齡byte,入學日期date)"####### 2)增加欄位###### 格式: Alter Table 表名Add 欄位名稱資料類型###

如:DoCmd.RunSQL "Alter Table student Add 学费 currency"

3)改变字段类型

格式: Alter Table 表名 Alter 字段名 新数据类型

如:DoCmd.RunSQL "Alter Table student Alter 年龄 integer"

4)改变字段宽度

格式: Alter Table 表名 Alter 字段名 新宽度

如:DoCmd.RunSQL "Alter Table studnt Alter 姓名 text(6)"

5)删除一个字段

格式: Alter 表名 Drop 字段名

如: DoCmd.RunSQL "Alter student Drop 年龄"

6)删除一个数据表

格式: Drop Table 表名

如:DoCmd.RunSQL "Drop Table student"

7)修改数据表名字

格式: DoCmd.rename "新表名", acTable, "旧表名"

如:DoCmd.rename "学生", acTable, "student"

2、编辑数据

1)向表中追加数据

格式: Insert into 表名 Values(记录.....)

注: 字符串型数据用 ‘ ’, 日期型型数据可以 ‘ ’,或 # #;

如:DoCmd.RunSQL "Insert into student Values('李达',35,'2003-1-15') "

或:

Dim name As String
Dim age As Byte, dates As Date         
name = InputBox("输入学生姓名")         
dates = InputBox("输入入学日期")          
ages = 17          
DoCmd.RunSQL "Insert into student Values ('" & name & "'," & age & ",'" & dates & "')"
登入後複製

2)修改表中记录

格式: Update 表名 set 字段=数值 Where 限定条件

如:DoCmd.RunSQL "Update student set 年龄=20 Where 姓名='李达'"

3)删除待定记录

格式: Delete from 表名 where 限定条件

如: DoCmd.RunSQL "Delete from student where 姓名='李达'"

3、实现数据完整性约束

1)设置主键

格式: Alter Table 表名 Add Primary Key (字段名)

如:DoCmd.RunSQL "Alter Table 导师 Add Primary Key (导师编号)"

2)设置外键

格式: Alter Table 主表名 Add Foreign Key (字段名) References 从表名

如:DoCmd.RunSQL "Alter Table 研究生 Add Foreign Key (导师编号) References 导师"

4、执行查询操作

VBA程序中可以用SQL命令完成数据查询操作,但是无法直接将查询结果所返回的记录集按数据表的形式显示,解决方法有:

1)将查询结果的返回记录集生成一个新表保存在数据库中,然后用ADO记录集对象对这个表进行各种操作,完成后再删除这个表;

Docmd.runSQL "Select 姓名,职称,年龄  Into temp From 导师 Where 职称 in('教授','副教授')"
登入後複製

操作.....

   rsTeacher.Close
   Docmd.runSQL "Drop Table temp"
登入後複製

2)将返回的记录集看成保存在内存中的一个临时表,用ADO记录集对象直接打开该查询指令;

访问当前数据库以外的数据库

1、Access提供了Connection.Open方法以连接另一个数据库

2、格式: Connection对象.Open "Provider=提供者;Date Source=数据库名;User ID=用户;PassWord=密码"

3、其中提供者为 Microsoft.Jet.OLEDDB.4.0;数据库名包括 数据库所在的路径(包括.mdb文件名)。

以上是利用ADO技術操作access資料庫的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

deepseek怎麼轉換pdf deepseek怎麼轉換pdf Feb 19, 2025 pm 05:24 PM

DeepSeek 無法直接將文件轉換為 PDF。根據文件類型,可以使用不同方法:常見文檔(Word、Excel、PowerPoint):使用微軟 Office、LibreOffice 等軟件導出為 PDF。圖片:使用圖片查看器或圖像處理軟件保存為 PDF。網頁:使用瀏覽器“打印成 PDF”功能或專用的網頁轉 PDF 工具。不常見格式:找到合適的轉換器,將其轉換為 PDF。選擇合適的工具並根據實際情況制定方案至關重要。

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

如何在Node.js環境中解決第三方接口返回403的問題? 如何在Node.js環境中解決第三方接口返回403的問題? Mar 31, 2025 pm 11:27 PM

在Node.js環境中解決第三方接口返回403的問題當我們在使用Node.js調用第三方接口時,有時會遇到接口返回403錯誤�...

Laravel Redis連接共享:為何select方法會影響其他連接? Laravel Redis連接共享:為何select方法會影響其他連接? Apr 01, 2025 am 07:45 AM

Laravel框架中Redis連接的共享與select方法的影響在使用Laravel框架和Redis時,開發者可能會遇到一個問題:通過配置...

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

在Node環境中如何避免第三方接口返回403錯誤? 在Node環境中如何避免第三方接口返回403錯誤? Apr 01, 2025 pm 02:03 PM

Node環境下如何避免第三方接口返回403錯誤在使用Node.js調用第三方網站接口時,有時會遇到返回403錯誤的問題。 �...

c#多線程的好處有哪些 c#多線程的好處有哪些 Apr 03, 2025 pm 02:51 PM

多線程的好處在於能提升性能和資源利用率,尤其適用於處理大量數據或執行耗時操作。它允許同時執行多個任務,提高效率。然而,線程過多會導致性能下降,因此需要根據 CPU 核心數和任務特性謹慎選擇線程數。另外,多線程編程涉及死鎖和競態條件等挑戰,需要使用同步機制解決,需要具備紮實的並發編程知識,權衡利弊並謹慎使用。

無法以 root 身份登錄 mysql 無法以 root 身份登錄 mysql Apr 08, 2025 pm 04:54 PM

無法以 root 身份登錄 MySQL 的原因主要在於權限問題、配置文件錯誤、密碼不符、socket 文件問題或防火牆攔截。解決方法包括:檢查配置文件中 bind-address 參數是否正確配置。查看 root 用戶權限是否被修改或刪除,並進行重置。驗證密碼是否準確無誤,包括大小寫和特殊字符。檢查 socket 文件權限設置和路徑。檢查防火牆是否阻止了 MySQL 服務器的連接。

See all articles