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

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

Nov 17, 2020 pm 04:22 PM
access データベース

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DeepSeek PDFを変換する方法 DeepSeek PDFを変換する方法 Feb 19, 2025 pm 05:24 PM

DeepSeekはファイルを直接PDFに変換できません。ファイルの種類に応じて、異なる方法を使用できます。一般的なドキュメント(Word、Excel、PowerPoint):Microsoft Office、Libreoffice、その他のソフトウェアを使用してPDFとしてエクスポートします。画像:画像ビューアまたは画像処理ソフトウェアを使用してPDFとして保存します。 Webページ:ブラウザの「Print into PDF」関数を使用するか、PDFツールに専用のWebページを使用します。 UNCOMMONフォーマット:適切なコンバーターを見つけて、PDFに変換します。適切なツールを選択し、実際の状況に基づいて計画を作成することが重要です。

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

GolangでJSONデータをデータベースに保存するにはどうすればよいですか? GolangでJSONデータをデータベースに保存するにはどうすればよいですか? Jun 06, 2024 am 11:24 AM

JSON データは、gjson ライブラリまたは json.Unmarshal 関数を使用して MySQL データベースに保存できます。 gjson ライブラリは、JSON フィールドを解析するための便利なメソッドを提供します。json.Unmarshal 関数には、JSON データをアンマーシャリングするためのターゲット型ポインターが必要です。どちらの方法でも、SQL ステートメントを準備し、データをデータベースに永続化するために挿入操作を実行する必要があります。

node.js環境で403を返すサードパーティインターフェイスの問題を解決する方法は? node.js環境で403を返すサードパーティインターフェイスの問題を解決する方法は? Mar 31, 2025 pm 11:27 PM

node.js環境で403を返すサードパーティインターフェイスの問題を解決します。 node.jsを使用してサードパーティのインターフェイスを呼び出すと、403を返すインターフェイスから403のエラーが発生することがあります...

PHP データベース接続の落とし穴: よくある間違いや誤解を避ける PHP データベース接続の落とし穴: よくある間違いや誤解を避ける Jun 05, 2024 pm 10:21 PM

PHP データベース接続エラーを回避するには、接続エラーを確認し、変数名を資格情報と照合するというベスト プラクティスに従ってください。安全なストレージまたは環境変数を使用して、資格情報のハードコーディングを回避します。 SQL インジェクションを防止し、準備されたステートメントまたはバインドされたパラメーターを使用するために、使用後に接続を閉じます。

Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Apr 01, 2025 am 07:45 AM

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。

ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法は? ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法は? Apr 01, 2025 pm 02:03 PM

ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法。 node.jsを使用してサードパーティのWebサイトインターフェイスを呼び出すと、403エラーを返す問題が発生することがあります。 �...

C#でマルチスレッドの利点は何ですか? C#でマルチスレッドの利点は何ですか? Apr 03, 2025 pm 02:51 PM

マルチスレッドの利点は、特に大量のデータを処理したり、時間のかかる操作を実行したりするために、パフォーマンスとリソースの使用率を改善できることです。複数のタスクを同時に実行できるようになり、効率が向上します。ただし、あまりにも多くのスレッドがパフォーマンスの劣化につながる可能性があるため、CPUコアの数とタスク特性に基づいてスレッドの数を慎重に選択する必要があります。さらに、マルチスレッドプログラミングには、同期メカニズムを使用して解決する必要があるデッドロックや人種条件などの課題が含まれ、同時プログラミングの確固たる知識が必要であり、長所と短所を比較検討し、それらを慎重に使用する必要があります。

See all articles