Apprendre DAO VBA

Créer un jeu d’enregistrements DAO à partir d’une table de la base de données active

L’exemple de code suivant utilise la méthode OpenRecordset pour créer un objet Recordset de type table pour une table dans la base de données active.

Créer un jeu d’enregistrements DAO à partir d’un formulaire

Vous pouvez créer un objet Recordset à partir d’un formulaire Access. Pour ce faire, utilisez la propriété ClôneRecordset (RecordsetClone ) du formulaire.

Créer un jeu d’enregistrements DAO à partir d’une requête

Vous pouvez créer un objet Recordset à partir d’une requête sélection stockée. Dans l’exemple de code suivant Current Product List , il s’agit d’une requête sélection existante stockée dans la base de données active.

Ajouter un enregistrement à un jeu d’enregistrements DAO

Vous pouvez ajouter un nouvel enregistrement à un objet Recordset de type table ou feuille de réponse dynamique à l’aide de la méthode AddNew.

Se déplacer dans un jeu d’enregistrements DAO

Un objet Recordset possède généralement une position actuelle, le plus souvent à un enregistrement. Lorsque vous faites référence aux champs d'un jeu d'enregistrements, vous obtenez des valeurs de l'enregistrement à la position actuelle, réputée comme l'enregistrement actuel. Cependant, la position actuelle peut également se situer juste avant le premier enregistrement d'un jeu d'enregistrements ou juste après le dernier enregistrement.

Rechercher un enregistrement dans un jeu d’enregistrements DAO de type instantané ou feuille de réponse dynamique

Vous pouvez utiliser les méthodes Find pour rechercher un enregistrement dans un objet Recordset de type feuille de réponse dynamique ou instantané.

Rechercher un enregistrement dans un jeu d’enregistrements DAO de type table

Utilisez la méthode Seek pour localiser un enregistrement dans un objet Recordset de type table. Lorsque vous utilisez la méthode Seek pour localiser un enregistrement, le moteur de base de données Access utilise l’index actuel de la table, comme défini par la propriété index .

Modifier un enregistrement existant dans un jeu d’enregistrements DAO

Vous pouvez modifier des enregistrements existants dans un objet Recordset de type table ou feuille de réponse dynamique à l’aide des méthodes Edit et Update .

Lire et écrire dans un champ d’un jeu d’enregistrements DAO

Lorsque vous lisez ou écrivez des données dans un champ, vous lisez ou définissez la propriété DAO Value d'un objet Field. La propriété DAO Value est la propriété par défaut d'un objet Field.

Compter le nombre d’enregistrements dans un jeu d’enregistrements DAO

Vous souhaiterez peut-être déterminer le nombre d’enregistrements dans un objet Recordset. Par exemple, vous pouvez créer un formulaire qui indique le nombre d’enregistrements dans chacune des tables d’une base de données. Vous pouvez également modifier l’apparence d’un formulaire ou d’un État en fonction du nombre d’enregistrements qu’il contient.

Supprimer un enregistrement d’un jeu d’enregistrements DAO

Vous pouvez supprimer un enregistrement existant dans une table ou un objet Recordset de type feuille de réponse dynamique à l’aide de la méthode Delete. Vous ne pouvez pas supprimer des enregistrements d'un objet Recordset de type capture instantanée.

Synchroniser l’enregistrement d’un jeu d’enregistrements DAO avec l’enregistrement actif d’un formulaire

L’exemple de code suivant utilise la propriété RecordsetClone et l’objet Recordset pour synchroniser l’enregistrement d’un jeu d’enregistrements avec l’enregistrement en cours du formulaire.

Détecter les limites d’un jeu d’enregistrements DAO

Dans un objet Recordset, si vous essayez de vous déplacer au-delà de l’enregistrement de début ou de fin, une erreur d’exécution se produit. Par exemple, si vous essayez d’utiliser la méthode MoveNext alors que vous êtes déjà au niveau du dernier enregistrement de l' objet Recordset, une erreur piégeable se produit. Il est dès lors utile de connaître les limites de l'objet Recordset.

Extraire les données d’un enregistrement d’un jeu d’enregistrements DAO

Après avoir localisé un ou des enregistrements, vous pouvez souhaiter extraire les données afin de les utiliser dans votre application au lieu de les modifier dans la table source sous-jacente.

Rechercher la position actuelle dans un jeu d’enregistrements DAO

Dans certaines situations, vous devez déterminer à quelle distance dans un objet Recordset vous avez déplacé la position d'enregistrement actuelle, et peut-être indiquer la position d'enregistrement actuelle à un utilisateur. Par exemple, vous souhaiterez peut-être indiquer la position actuelle sur un cadran, un compteur ou un type de commande similaire. Deux propriétés sont disponibles pour indiquer la position actuelle: la propriété AbsolutePosition et la propriété PercentPosition.

Marquer une position dans un jeu d’enregistrements DAO

Un signet est un tableau d'octets généré par le système qui identifie chaque enregistrement de manière unique. La propriété DAO Bookmark d'un objet Recordset change chaque fois que vous vous déplacez sur un nouvel enregistrement.

Apporter des modifications en bloc à un jeu d’enregistrements DAO

Une fois que vous avez créé un objet Recordset de type table ou feuille de réponse dynamique, vous pouvez modifier, supprimer ou ajouter de nouveaux enregistrements. Vous ne pouvez pas modifier, supprimer ou ajouter des enregistrements à un objet Recordset de type Capture instantanée ou Avant uniquement.

Trier des données dans un jeu d’enregistrements DAO

Sauf si vous ouvrez un objet Recordset de type table et définissez sa propriété index, vous ne pouvez pas vous assurer que les enregistrements s’afficheront dans un ordre spécifique. Néanmoins, il est généralement souhaitable d'extraire les enregistrements dans un ordre défini. Par exemple, on peut avoir besoin d'afficher des factures dans l'ordre croissant de leur numéro ou d'extraire des enregistrements d'employés dans l'ordre alphabétique de leur nom de famille. Pour voir les enregistrements dans un ordre spécifique, triez-les.

Utiliser des transactions dans un jeu d’enregistrements DAO

Une transaction est un ensemble d’opérations regroupées et gérées comme une seule unité de travail. Le travail d'une transaction doit être achevé pour tous les éléments ; si l'un d'entre eux échoue, toute la transaction échoue également.

Utiliser des pièces jointes dans DAO

Dans DAO, les champs Pièces jointes fonctionnent comme les autres champs à valeurs multiples. Le champ qui contient la pièce jointe comporte un jeu d'enregistrements qui est un enfant du jeu d'enregistrements de la table. Il existe deux nouvelles méthodes DAO, LoadFromFile et SaveToFile, qui traitent exclusivement des pièces jointes.

Manipuler des champs à plusieurs valeurs avec DAO

Les champs à plusieurs valeurs sont représentés comme des objets Recordset dans DAO. Le jeu d'enregistrements d'un champ est un enfant du jeu d'enregistrements de la table qui contient le champ à valeurs multiples. Pour instancier l’objet Recordset enfant, utilisez la propriété value du champ à plusieurs valeurs comme suit.