検索
ホームページトピックAccessADO技術を利用してアクセスデータベースを操作する方法

ADO技術を利用してアクセスデータベースを操作する方法

まず、ADO オブジェクトを紹介します:

1. Access に埋め込まれた VBA は、ADO テクノロジを使用してデータベース アプリケーションを開発するための主要なツールです。ADO は現在、 Microsoft データ アクセス テクノロジに共通;

2. ADO オブジェクト モデルには、接続、レコードセット、レコード、コマンド、パラメーター、フィールド、プロパティ、ストリーム、エラーの 9 つのオブジェクトが含まれます;

関連する推奨事項: アクセス データベース チュートリアル

3. 主要な ADO オブジェクトの紹介:

1) 接続オブジェクト: ADO オブジェクト モデルの最上位オブジェクトであり、アプリケーションとデータ ソース間の接続 ;

2) コマンド オブジェクト: 主に VBA の SQL ステートメントを使用して、データベース内のデータにアクセス、クエリ、変更し、Recordset オブジェクト (データ) では実現できない操作を実現します。テーブル レベルの操作)、代わりに DoCmd を使用できます。

3) Recordset オブジェクト: ADO で最も一般的に使用される重要なオブジェクトで、テーブルにアクセスしてオブジェクトをクエリできます。返されたレコードは Recordset オブジェクトに格納されます。主な操作は次のとおりです。

① データ テーブルのクエリ データ テーブルのデータ;

②データ テーブルのデータの追加;

③データ テーブルのデータを更新します。

④データ テーブル内の特定のデータを削除します;

Access での ADO オブジェクトの参照

1. Access が ADO​​ を参照する手順:

①ADO を宣言して初期化します。 Connection オブジェクト;

②Recordset オブジェクトを作成し、プログラミング An 操作を完了します;

③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 オブジェクトを開く

Recordset の Open メソッドを使用して、データ テーブル、クエリ オブジェクト、または、SQL クエリ ステートメントを直接参照します

rsName.Open source, ActiveConnection, CursorType,LockType,Option

ADO技術を利用してアクセスデータベースを操作する方法

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 オブジェクトを通じてレコードを参照する

1. Recordset レコード セット オブジェクトには、レコードを参照するための 4 つのメソッドが用意されています

ADO技術を利用してアクセスデータベースを操作する方法

#2. BOF 属性と EOF 属性は、ポインターがファイルの先頭と末尾にあるかどうかをそれぞれ記録します。

レコードセット ポインターがレコードを指す場合、BOF と EOF は両方ともfalse;

'フォーム コンポーネントのボタン イベントを追加します: 次のレコードを参照します

Priavte Sub ComomndNext_Click()
     rsDemo.MoveNext
     If rsDemo。EOF Then
          rsDemo.MoveFirst
     End If
End Sub

3. Recordset オブジェクトの LockType 属性のデフォルトは adLockReadOnly (読み取り専用)

ADO技術を利用してアクセスデータベースを操作する方法

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) レコードセットの更新を使用します新しいレコードを更新および維持するメソッド;

'レコード セットの年齢フィールドのすべての値 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命令"

または:

     Dim s AS String
     s = "SQL命令"
     DoCmd.RunSQL s

1データの定義

1) データ テーブルの作成

形式: Create Table テーブル名 (フィールド名 データ型...)

例: DoCmd.RunSQL "Create Table大学院生 (名前 text(6)、年齢バイト、入学日 date)"

2) フィールドを追加します

形式: Alter Table テーブル名 フィールド名のデータ型を追加します

 如: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技術を利用してアクセスデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール