Table of contents
TOC
Réduire la table des matières
Développer la table des matières

Form.Bookmark, propriété (Access)

office 365 dev account|Dernière mise à jour: 20/11/2017
|
1 Contributeur

Vous pouvez utiliser la propriété Bookmark dans des formulaires pour définir un signet qui identifie de façon unique un enregistrement particulier dans la table, la requête ou l'instruction SQL sous-jacente du formulaire. Valeur de type Variant en lecture/écriture.

Syntaxe

expression . Bookmark

expression Variable représentant un objet Form.

Remarques

Remarque Vous recherchez ou définissez la propriété Bookmark d'un formulaire indépendamment de la propriété ADO Signet ou DAO Bookmark d'une table ou d'une requête sous-jacente.

Lorsqu'un formulaire dépendant est ouvert en mode Formulaire, chaque enregistrement reçoit un signet unique. Dans Visual Basic, vous pouvez enregistrer le signet de l'enregistrement actif en affectant à la valeur de la propriété Bookmark du formulaire une variable de type chaîne de caractères. Pour revenir à un enregistrement enregistré après être passé à un autre enregistrement, attribuez à la propriété Bookmark du formulaire la valeur de la variable chaîne de caractères enregistrée. Vous pouvez utiliser la fonction StrComp pour comparer une valeur de type Variant ou une variable de type chaîne à un signet, ou lors de la comparaison d'un signet à un autre signet. Le troisième argument de la fonction StrComp doit être défini sur une valeur nulle (zéro).

Remarque Les signets ne sont pas sauvegardés avec les enregistrements qu'ils représentent et ne sont valides que lorsque le formulaire est ouvert. Ils sont recréés par Microsoft Access à chaque ouverture d'un formulaire dépendant.

Vous pouvez enregistrer un nombre illimité de signets à condition que chacun d'eux soit enregistré avec une variable chaîne de caractères unique.

La propriété Bookmark n'est disponible que pour l'enregistrement actif du formulaire. Pour enregistrer un signet dans un enregistrement différent de l'enregistrement actif, déplacez-vous jusqu'à cet enregistrement et définissez comme paramètre de la propriété Bookmark une variable chaîne de caractères qui identifie cet enregistrement.

Vous pouvez utiliser les signets dans tout formulaire qui repose entièrement sur des tables Microsoft Access. Toutefois, il se peut que d'autres produits de base de données ne prennent pas en charge les signets. Par exemple, vous ne pouvez pas utiliser de signets dans un formulaire basé sur une table liée qui n'a pas d'index primaire.

L'actualisation d'un formulaire annule tous les signets définis sur les enregistrements de ce formulaire. Toutefois, le fait de cliquer sur Actualiser dans le menu Enregistrements n'affecte pas les signets.

Étant donné que Microsoft Access crée un signet unique pour chacun des enregistrements du jeu d'enregistrements d'un formulaire ouvert, le signet d'un formulaire n'a aucun effet dans un autre jeu d'enregistrements, même si les deux jeux d'enregistrements sont basés sur la même table, requête ou instruction SQL. Par exemple, supposons que vous ouvrez un formulaire lié à la table Customers (Clients). Si vous ouvrez ensuite la table Customers à l'aide de Visual Basic et utilisez la méthode ADO Seek ou DAO Seek pour localiser un enregistrement spécifique dans la table, vous ne pouvez pas définir la propriété Bookmark du formulaire sur l'enregistrement actif de la table. Pour effectuer ce type d'opération, vous devez utiliser la méthode ADO Find ou DAO Find ainsi que la propriété RecordsetClone du formulaire.

Une erreur se produit si vous définissez la propriété Bookmark à l'aide d'une variable chaîne de caractères et essayez ensuite de revenir à cet enregistrement après sa suppression.

La valeur de la propriété Bookmark est différente d'un numéro d'enregistrement.

Exemple

Pour tester l'exemple suivant sur l'exemple de base de données Northwind, vous devez ajouter un bouton de commande appelé cmdFindContactName au formulaire Suppliers (Fournisseurs), puis ajouter le code qui suit à l'événement Clic du bouton. Lorsque l'utilisateur clique sur le bouton, il est invité à taper une portion du nom du contact à retrouver. Si le nom est retrouvé, la propriété Bookmark du formulaire prend la même valeur que la propriété DAO Bookmark de l'objet Recordset, qui déplace l'enregistrement actif du formulaire sur le nom retrouvé.

Private Sub cmdFindContactName_Click()

 Dim rst As DAO.Recordset
 Dim strCriteria As String

 strCriteria = "[ContactName] Like '*" & InputBox("Enter the " _
 & "first few letters of the name to find") & "*'"

 Set rst = Me.RecordsetClone
 rst.FindFirst strCriteria
 If rst.NoMatch Then
 MsgBox "No entry found.", vbInformation
 Else
 Me.Bookmark = rst.Bookmark
 End If

 Set rst = Nothing

End Sub

Voir aussi

Concepts

Objet Form

Autres ressources

© 2018 Microsoft