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 :

Récupérer la valeur courante d'un NuméroAuto


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Points : 37
    Points
    37
    Par défaut Récupérer la valeur courante d'un NuméroAuto
    Bonjour,

    J'ai un formulaire lié a une table et n'affichant qu'un seul enregistrement. Chaque champ de l'enregistrement est affiché dans un contrôle. L'un de ces contrôles affiche la clé primaire de l'enregistrement qui est un NuméroAuto.

    Mon problème a lieu lorsque le formulaire est sur un nouvel enregistrement: le contrôle contenant la clé affiche "(NuméroAuto)" au lieu de la clé générée pour le nouvel enregistrement.

    Y a-t-il un moyen d'afficher la valeur réelle de la clé NuméroAuto même si l'enregistrement n'a pas encore été enregistré?

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Salut,
    pas à ma connaissance, si ton enregistrement n'est pas enregistré, il n'existe pas et donc n'a pas de N° auto, ce dernier se créé quand tu rentre des données dans un autre contrôle (que tu n'as pas sur ton form).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Points : 37
    Points
    37
    Par défaut
    Tu dois avoir raison. C'est dommage car je sais qu'avec les Recorset DAO, on peut accéder à la valeur NuméroAuto dès que la méthode MonRecordset.AddNew a été appelée. Pourquoi ne pourrions-nous pas faire de même avec le Recordset d'un formulaire lié?

    Si quelqu'un d'autre a une idée, elle sera la bienvenue

    Merci Mr T 94

  4. #4
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    si t'es sûr d'enregistrer la donnée pourquoi ne pas afficher le numeroauto du recorset d'avant +1 ? c'est simple

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Points : 37
    Points
    37
    Par défaut
    Le problème c'est que je suis justement pas sûr d'enregistrer le nouvel enregistrement. D'ailleurs, sachant que si la création d'un nouvel enregistrement est annulée l'incrémentation du NuméroAuto a quand-même eu lieu, la valeur de l'enregistrement d'avant + 1 n'est pas forcément égale à la valeur du nouvel enregistrement.

    Merci quand-même laurent.w

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par vcattin
    Tu dois avoir raison. C'est dommage car je sais qu'avec les Recorset DAO, on peut accéder à la valeur NuméroAuto dès que la méthode MonRecordset.AddNew a été appelée. Pourquoi ne pourrions-nous pas faire de même avec le Recordset d'un formulaire lié?

    Si quelqu'un d'autre a une idée, elle sera la bienvenue

    Merci Mr T 94

    Justement, c'est le même principe ici. Comme la méthode AddNew du recordset du formulaire n'a pas encore été invoquée, la valeur du numéro auto est encore inconnue. Cette méthode ne sera invoquée que lorsque tu commenceras ta saisie dans le formulaire.

    si t'es sûr d'enregistrer la donnée pourquoi ne pas afficher le numeroauto du recorset d'avant +1 ? c'est simple
    Rien ne prouve qu'entre l'affichage et la sauvegarde personne d'autre n'aura ajouté une autre ligne

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Tofalu
    Justement, c'est le même principe ici. Comme la méthode AddNew du recordset du formulaire n'a pas encore été invoquée, la valeur du numéro auto est encore inconnue. Cette méthode ne sera invoquée que lorsque tu commenceras ta saisie dans le formulaire.
    Pourtant j'ai utilisé Me.Recorset.AddNew dans l'événement SurOuverture de mon formulaire pour le positionner sur le nouvel enregistrement. La valeur du NuméroAuto ne devrait-elle pas être alors déjà connue?

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    avant le update en dao l'enregistrement n'est pas crée

    tu peux toujours bidouiller en ajoutant un enregistrement bidon et en proposant une zone d'édition qui pourra être enrichie du numéro auto

    sur validation les données de l'édition viendront remplacer celles de l'enregistrement
    sur abandon l'enregistrement sera supprimé avec conséquences sur le numéro auto

    Tu peux aussi prendre en charge la gestion de ton numéro auto

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Points : 37
    Points
    37
    Par défaut
    J'ai finalement trouvé une solution à mon problème. Au lieu d'utiliser un contrôle lié pour le champ NuméroAuto, j'utilise un contrôle indépendant. Pour ajouter un nouvel enregistrement à l'ouverture du formulaire, au lieu d'utiliser DoCmd.GoToRecord , , acNewRec, je passe par le recordset lié au formulaire, de même pour récupérer la valeur du NuméroAuto:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_Open(Cancel As Integer)
        Me.Recordset.AddNew
        TexteNumero.Value = Me.Recordset("Numéro")
    End Sub
    Par contre j'ai dû désactiver la molette de la souris (c.f. FAQ) parce que sinon je ne sais pas comment mettre à jour le contrôle contenant le NuméroAuto de façon correcte lorsqu'on change d'enregistrement (j'ai essayé en utilisant l'événement Form_Current mais en vain...).

    Mais bon finalement c'est pas plus mal, l'utilisation de la molette pour naviguer dans les enregistrements, moi je suis pas fan

    Merci à tous de votre aide!

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

Discussions similaires

  1. Java + Ibatis + Oracle -> récupérer la valeur courante de la séquence
    Par nico1214 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 01/12/2011, 16h13
  2. Réponses: 4
    Dernier message: 14/05/2007, 13h44
  3. Comment récupérer la valeur courante de SpinCtrl
    Par effde dans le forum wxPython
    Réponses: 3
    Dernier message: 25/02/2007, 20h11
  4. Récupérer la valeur courante d'un SELECT issu d'un code PHP
    Par oook dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/06/2006, 14h48
  5. Réponses: 1
    Dernier message: 03/12/2005, 12h24

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