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ération de l'ID lors d'une requête


Sujet :

Access

  1. #1
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut Récupération de l'ID lors d'une requête
    Bonjour,

    j'ai une requête me permettant d'insérer une ligne dans une table access.
    j'aimerais savoir, lorsque j'exécute cette requête, s'il est possible de récupérer l'ID qui lui a été attribué (comme en mysql avec "mysql last_insert_id", sans vouloir discuter sur le fait que "mysql_last_insert_id" ne donne pas forcément le résultat attendu xD)

    merci d'avance,
    cordialement

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Une simple requête de sélection avec un Last([ID]) fera l'affaire. En mode multi users ça deviendra un peu aléatoire cependant.

    Sinon un Dlast() ce qui revient au même puisque access créra une requete Last() pour renvoyer le résultat.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    yep ça c'est même problème que avec MYSQL_LAST_INSERT_ID

    un autre problème avec ça, c'est que les requêtes sont sûrement exécutées en parrallèles.
    j'avais une fonction comme ça
    inserer_dans_la_table
    lire_le_dernier_id
    mais quand je fesait tourné ma fonction 1000 fois par exemple, je me suis aperçu que parfois lorsqu'il récupérait l'id, l'insertion n'était pas encore exécuté.

    Le mieux avec access, c'est de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Set result = currentDb.TableDefs("maTable").Recordset
    with result
    .addNew
    !monChamp1 = val1
    !monChamp2 = val2
    .update
    .bookmark = .lastUpdated
     
    newId = .fields(0)
    end with
    alors je fais ça de tête, donc j'ai peut-être une faute de syntaxe, mais l'idée est là !

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Il me semblait que tu voulais exécuter une requête d'insertion... ce qui n'est pas le cas avec ton exemple.

    C'est plutot LastModified que tu doit utiliser... Assigner une date et heure à un bookmark n'a pas trop de sens.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    yep LastModified, comme j'ai dit je le fesais de tête, j'ai fait une tite erreur !
    mais du coup ça fait bien une requête d'insertion après avoir fait ça, et on récupère l'ID avec result.fields(0)

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

Discussions similaires

  1. Types de données incompatibles lors d'une requête sous access
    Par RodEpsi dans le forum Bases de données
    Réponses: 32
    Dernier message: 21/07/2006, 15h51
  2. récupération du message à la fin d'une requête
    Par beab1802 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 21/04/2006, 22h33
  3. Erreur lors d'une requête d'ajout
    Par olivia.of dans le forum Access
    Réponses: 13
    Dernier message: 14/02/2006, 12h18
  4. [MySQL] Perte d'information lors d'une requête de visualisation
    Par niccco dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 13h46
  5. Mauvais noms de colonnes lors d'une requête
    Par nmathon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/04/2004, 07h27

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