Maison  >  Article  >  Les sujets  >  Comment utiliser la technologie ADO pour exploiter la base de données d'accès

Comment utiliser la technologie ADO pour exploiter la base de données d'accès

王林
王林avant
2020-11-17 16:22:294146parcourir

Comment utiliser la technologie ADO pour exploiter la base de données d'accès

Tout d'abord, présentons l'objet ADO :

1 Le VBA intégré dans Access est actuellement le principal outil de développement d'applications de base de données utilisant la technologie ADO. commun à la technologie d'accès aux données Microsoft ;

2. Le modèle objet ADO comprend neuf objets : connexion, jeu d'enregistrements, enregistrement, commande, paramètre, champ, propriété, flux et erreur

Recommandations associées : Tutoriel d'accès à la base de données

3. Introduction aux principaux objets ADO :

1) Objet de connexion : l'objet de plus haut niveau dans le modèle objet ADO, utilisé pour réaliser le connexion entre l'application et la source de données ;

2) Objet de commande : utiliser principalement des instructions SQL dans VBA pour accéder, interroger et modifier les données de la base de données, afin de réaliser des opérations qui ne peuvent pas être réalisées par les objets Recordset (table de données opérations de niveau), vous pouvez utiliser DoCmd à la place ;

3) Objet Recordset : l'objet le plus couramment utilisé et le plus important dans ADO, qui peut accéder aux tables et aux objets de requête. Les enregistrements renvoyés sont stockés dans l'objet Recordset. les principales opérations sont :

① Interroger les données de la table de données

②Ajouter des données dans la table de données

③Mettre à jour les données dans la table de données

④Supprimer des données spécifiques dans la table de données ;

Référencer les objets ADO dans Access

1.Étapes d'accès pour référencer ADO :

①Déclarer et initialiser l'objet Connection. ;

②Créer des objets Recordset et terminer la programmation Une opération

③ Fermer l'objet ADO

2. Déclarer et initialiser l'objet Connection

'Déclarer'. l'objet Connection : utilisez généralement cn comme préfixe de dénomination de la variable ;

Dim coName As ADODB.Connection

'Initialisez l'objet Connection et connectez-vous à la base de données actuelle ;

Set cnName = CurrentProject.Connection

3 Déclarez et ouvrez l'objet Recordset<.>

1) Déclarez et initialisez l'objet Recordset

Dim rsName As ADODB.Recoreset
set rsName = new ADODB.Recordset

2) Ouvrir un objet Recordset

Utilisez la méthode Open de Recordset pour ouvrir une table de données, un objet de requête ou référencer directement l'instruction de requête SQL

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

Comment utiliser la technologie ADO pour exploiter la base de données daccès 4. Fermez les objets Recordset et Connection

rsName.Close
cnName.Close
Set rsName = Nothing
Set cnName = Nothing

Champs d'enregistrement de référence via l'objet Recordset

1 Là. Il existe deux manières de référencer des champs : référencer directement le nom du champ dans l'objet recordset ; utiliser Fields(n) de l'objet recordset. La référence d'attribut

Code = rsName!字段名

' fait référence au premier enregistrement du champ

Code = rsName .Field(n)
' fait référence au nième enregistrement du champ, n commence à 0, vous pouvez utiliser une boucle pour afficher le nombre d'enregistrements requis

2 Si le champ du jeu d'enregistrements contient des espaces ou est un mot réservé, le le champ doit être entouré de [ ] lors de la citation ;

Parcourir les enregistrements via l'objet Recordset

1. L'objet de jeu d'enregistrements Recordset fournit 4 méthodes pour parcourir les enregistrements

2. Les attributs BOF et EOF enregistrent respectivement si le pointeur est au début et à la fin du fichier Comment utiliser la technologie ADO pour exploiter la base de données daccès

Si le pointeur du jeu d'enregistrements pointe vers un enregistrement, BOF et EOF sont tous deux faux ;

'Ajouter un événement de bouton du composant de formulaire : accédez à l'enregistrement suivant

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

3 LockType de l'objet Recordset L'attribut par défaut est adLockReadOnly (lecture seule)

.

Modifier les données via l'objet Recordset Comment utiliser la technologie ADO pour exploiter la base de données daccès

1 Utilisez la méthode AddNew pour ajouter des enregistrements

1) Appelez la méthode AddNew du jeu d'enregistrements génère un enregistrement vide

2) Attribuez des valeurs à chaque champ de l'enregistrement vide ;

3) Utilisez la méthode Update de l'ensemble d'enregistrements pour mettre à jour et conserver les nouveaux enregistrements

' Ajouter un événement de bouton d'enregistrement ; , en supposant que l'ensemble d'enregistrements rsDemo contient des champs Id(int), Name(String), Age(int)

Private Sub CommandAdd_Click()
     rsDemo.MoveLast  &#39;记录集指针移动到记录集最后
     rsDemo.AddNew  &#39;添加一条新纪录   
     rsDemo ! Id = "123"
     rsDemo ! Name = "assad"
     rsDemo ! Age = "18" 
     rsDemo.Update
End Sub

2 Utilisez la méthode Update pour modifier l'enregistrement

1) Rechercher et. Déplacez le pointeur du jeu d'enregistrements vers l'enregistrement qui doit être modifié ;

2) Modifiez les valeurs de chaque champ de l'enregistrement

3) Utilisez la méthode de mise à jour du jeu d'enregistrements pour mettre à jour ; et conserver les nouveaux enregistrements ;

'Modifier toutes les valeurs du champ Âge dans l'ensemble d'enregistrements +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 Utilisez la méthode Supprimer pour supprimer les enregistrements

. 1) Déplacez le pointeur du jeu d'enregistrements vers l'enregistrement qui doit être supprimé ;

2) Utilisez la méthode Supprimer pour supprimer l'enregistrement actuel

3) Désignez un enregistrement comme enregistrement actuel
&#39;删除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

Remarque : après la suppression d'un enregistrement, Access ne deviendra pas automatiquement l'enregistrement suivant. À ce stade, utilisez la méthode MoveNext pour positionner le pointeur du jeu d'enregistrements sur le dernier enregistrement ; >Utilisez la commande SQL via l'objet Command/DoCmd

Access fournit l'objet DoCmd. Sa méthode RunSOL peut utiliser des commandes SQL dans VBA

DoCmd.RunSQL "SQL命令"

ou :

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

1 ; . Définir les données

1) Créer une table de données

Format : Créer un nom de table (nom de champ type de données...)

Par exemple : DoCmd.RunSQL "Créer Étudiant diplômé de la table (texte du nom (6), octet d'âge, date d'admission)"

2) Ajouter un champ

Format : Modifier le nom de la table Ajouter le type de données du nom du champ

 如: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 (&#39;" & name & "&#39;," & age & ",&#39;" & dates & "&#39;)"

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(&#39;教授&#39;,&#39;副教授&#39;)"

操作.....

   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文件名)。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer