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 :

Problème identification enregistrement [Toutes versions]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Problème identification enregistrement
    Bonjour,

    J'ai affaire à une base dorsale et 2 frontales fonctionnant donc dans un rôle client-serveur. Cet ensemble a été créé par développements successifs en fonction de besoins révélés au fil du temps.
    Pour des raisons obscures et pratiques (!) une des tables avait un identificateur unique d'enregistrements par numérotation non auto : une simple incrémentation. Un seul utilisateur, donc cela pouvait se concevoir...
    Aujourd'hui il s'avère que DEUX utilisateurs ont aujourd'hui la possibilité de créer simultanément le même identificateur par des fonctions distinctes dans chacune des 2 bases frontales, l'un écrasant donc l'enregistrement de l'autre. Je me demande comment corriger ce problème et pense à deux solutions :
    1 Le plus simple pour moi : est-il envisageable de placer une fonction unique de création d'enregistrement dans la base dorsale et qui serait appelée par chaque utilisateur, si oui y aurait-il alors risque de "collision" ?
    2 Le plus raisonnable : utiliser un ID unique en auto, mais très problématique car les ID déjà créés ne peuvent pas être changés et surtout, pour des besoins particuliers, ils ont été décomposés en deux étages (de 1 à 98999 et au-delà de 99000) ?

    Merci de vos suggestions et avis.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 84
    Points : 63
    Points
    63
    Par défaut Réponse
    Bonjour,

    As-tu déjà pensé a créer une table et la mettre a jour avec les informations que tu possède. De cette manière tu auras un numéro auto.... de supprimer les identifiants et de faire un "update" des infos en faisait tout basculer sur le "nouveau numéro d' identification ? "

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par killowatt Voir le message
    Bonjour,

    As-tu déjà pensé a créer une table et la mettre a jour avec les informations que tu possède. De cette manière tu auras un numéro auto.... de supprimer les identifiants et de faire un "update" des infos en faisait tout basculer sur le "nouveau numéro d' identification ? "
    Bonjour,

    C'est une bonne solution mais je dois obligatoirement conserver les n° déjà créés, ta solution va créer de nouveaux id non ?

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 84
    Points : 63
    Points
    63
    Par défaut Condition
    Et si tu mets des condition dans les fonctions de création dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
        UPDATE Table1 SET (...) WHERE Column1='SomeValue'
    ELSE
        INSERT INTO Table1 VALUES (...)
    Cela reviens a faire si cette valeur existe déjà dans la requête ne pas la créer et en crée une nouvelle...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par killowatt Voir le message
    Cela reviens a faire si cette valeur existe déjà dans la requête ne pas la créer et en crée une nouvelle...
    Ok, je vais faire un test dans ce sens, mais avec des id supérieurs à 99000, une numérotation auto va placer au-dessus toute nouvelle insertion non ? dans ce cas je vais devoir envisager une autre solution...

    le 12/11/2015
    Non, je me trompais, en suivant tes conseils j'ai créé une table identique à laquelle j'ai ajouté un champ newID auto, ensuite j'y ai copié les données de la première. En résultat il me suffit de recopier la valeur du champ newID dans le champ ID car je n'ai même pas besoin de tester, la valeur des newID étant supérieure au nombre d'enregistrement initialement restant dans la table.
    Pour les ID supérieurs à 99000 je n'aurai pas de soucis vu qu'ils ne seront plus incrémentés d'ici 2 mois, et vu que la table évolue d'environ 2000 enregistrement par an, il y a au moins 50 ans de marge et d'ici là...
    Merci encore.

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

Discussions similaires

  1. probléme d'enregistrement avec les chexkbox.
    Par pmboutteau dans le forum ASP
    Réponses: 16
    Dernier message: 18/10/2005, 15h05
  2. Réponses: 1
    Dernier message: 25/09/2005, 11h09
  3. Problème d'enregistrement de DLL
    Par chleuh dans le forum Langage
    Réponses: 5
    Dernier message: 01/07/2005, 10h30
  4. problème d'enregistrement de textarea dans bdAccess
    Par pmboutteau dans le forum ASP
    Réponses: 23
    Dernier message: 04/04/2005, 15h10
  5. Problèm d'enregistrement
    Par ludogim dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2004, 11h41

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