IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Bookmark de Form et de DAO.Recordset


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Bookmark de Form et de DAO.Recordset
    Bonjour,

    D'après le tutoriel DAO de Tofalu "Définition et manipulation de données avec DAO" la propriété Bookmark retourne un tableau contenant des données de type Byte :

    La propriété Bookmark du Recrodset retourne un signet vers l'enregistrement. Il s'agit d'un tableau contenant des données de type Byte.

    Dim BytPosition() as Byte
    BytPosition=oRecordset.Bookmark
    D'après {F1} c'est un String :
    (Chez moi c'est tout bilingue, mais je n'ai pas fait exprès : L'aide Visual Basic s'affiche en français et/ou en anglais, avec parfois des mélanges).

    When a bound form is opened in Form view, each record is assigned a unique bookmark. In Visual Basic, you can save the bookmark for the current record by assigning the value of the form's Bookmark property to a string variable. To return to a saved record after moving to a different record, set the form's Bookmark property to the value of the saved string variable. You can use the StrComp function to compare a Variant or string variable to a bookmark, or when comparing a bookmark against a bookmark. The third argument for the StrComp function must be set to a value of zero.
    Dans quelles conditions un tableau de Bytes est-il "équivalent" ou peut-il être contenu dans un simple String ?

    Est-ce que si on a déclaré le bookmark comme étant de type tableau de Bytes on peut toujours y appliquer une fonction de comparaison de chaînes ?

    Quelle est la manière la plus "propre" de travailler avec un bookmark dont on souhaite affecter la valeur à une variable ?

    Quelqu'un voudrait-il bien m'éclairer ?

    Merci beaucoup,
    Cordialement.

    CRUSOE13

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Re: Bookmark de Form et de DAO.Recordset
    Bonjour,
    Citation Envoyé par CRUSOE13
    La propriété Bookmark du Recrodset retourne un signet vers l'enregistrement. Il s'agit d'un tableau contenant des données de type Byte.
    Tu peux utiliser un String pour récupérer le signet (Bookmark) d'un Form comme celui d'un Recordset, puis assigner ce même String à la propriété Bookmark du Recordset et/ou du Form.
    Citation Envoyé par CRUSOE13
    Quelle est la manière la plus "propre" de travailler avec un bookmark dont on souhaite affecter la valeur à une variable ?
    Donc, une variable de type String est à privilégier !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Bookmark de Form et de DAO.Recordset
    Bonsoir JBO,

    Merci pour ta réponse, Ok pour un String, mais tu n'expliques pas POURQUOI et c'était la première partie de ma question.

    J'avais bien précisé que je devais récupérer un Bookmark dans une variable, donc je suivrai ton conseil qui va dans le même sens que {F1}.

    Mais comme dit Papy Turbo, je n'aime pas les boîtes noires (même pas les toutes petites) !

    Je consulterai volontiers un ouvrage qui traite du sujet, mais quel est le sujet ?
    Les Strings, les tableaux de Bytes ?
    Cela revient peut-être au même, en fin de compte.

    Je cherche à y voir clair.

    Merci.
    Cordialement.

    CRUSOE13

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Bookmark de Form et de DAO.Recordset. String et Byte().
    Salut CRUSOE13,

    Sur la propriété Bookmark:
    Dans le principe, on peut dire que les deux expressions ci-dessous sont équivalentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms(0).Bookmark
    Forms(0).Recordset.Bookmark
    La propriété Bookmark retourne réellement un tableau de Bytes.
    Un Byte est un octet.
    Ce tableau comporte 4 éléments, donc 4 octets.

    Assignation d'un tableau de Bytes dans un String:
    Visual Basic permet d'assigner "naturellement" un tableau de Bytes dans un type String. Par "naturel" je veux dire que la conversion se fait automatiquement, sans qu'il soit nécessaire de recourir à la programmation d'une procédure de conversion.

    Le type String code chaque caractère sur 2 octets, ce qui permet de supporter le codage Unicode, au lieu de l'ASCII plus limité.
    Donc un String de 2 caractères est codé en réalité sur 4 octets.

    Si tu affectes un tableau de Bytes dans un String, les octets du tableau sont copiés tels quels, sans interprétation (copie binaire).
    Ainsi, un tableau de 4 Bytes deviendra un String de 2 caractères.
    Mais il est probable que ce String ne s'affichera pas correctement.

    De même, l'assignation d'un String dans un tableau de Bytes se fait naturellement.

    Citation Envoyé par CRUSOE13
    Est-ce que si on a déclaré le bookmark comme étant de type tableau de Bytes on peut toujours y appliquer une fonction de comparaison de chaînes ?
    Il faut d'abord convertir le tableau en String, soit en lui appliquant explicitement la fonction de conversion CStr(), soit en l'assignant à une variable de type String.

    Ainsi, tu peux comparer 2 signets (bookmarks) codés dans des Strings.

    En revanche, il n'existe pas d'opérateur de comparaison pour les tableaux.

    Citation Envoyé par CRUSOE13
    Je cherche à y voir clair.
    Et maintenant, ça va mieux ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Bookmark de Form et de DAO.Recordset
    Bonjour à tous,
    Bonjour =JBO=,

    Merci, merci, merci, merci et encore merci !

    Tu m'as sorti de la vase, je vais grimper dans les palétuviers.
    Sincèrement reconnaissant.

    CRUSOE13

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] DAO.Recordset ou Form.RecordSource ?
    Par jehhej dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/10/2013, 06h31
  2. [DAO]Recordset DAO sans doublons
    Par amalane dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/04/2007, 19h09
  3. [DAO]Recordset et Problème de cotes dans la clause where
    Par fabiolous dans le forum VBA Access
    Réponses: 31
    Dernier message: 20/04/2007, 16h46
  4. Réponses: 2
    Dernier message: 08/12/2006, 11h09
  5. [VBA] Utilisation de DAO.recordset
    Par kissmytoe dans le forum Access
    Réponses: 2
    Dernier message: 14/03/2006, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo