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

VBA Access Discussion :

Solution pour connaitre les enregistrements d'une transaction


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Points : 36
    Points
    36
    Par défaut Solution pour connaitre les enregistrements d'une transaction
    Bsr,

    Voila mon problème..

    Je dois créer des dossiers dans une table à partir d'une table temporaire qui a été alimenté par un import de fichier.

    Je lis donc tous les dossiers de ma table temporaire et s'ils sont conformes je les insère un a un en utilisant une transaction : si un dossier n'est pas conforme, je rejète la totalité du fichier en faisant un rollback... en fin de traitement si tous les dossiers sont conformes je fais un commit.

    Mon souci est que dans le fichier d'entrée je peux avoir des dossiers en double que je ne veux pas créer deux fois le même dossier sans pour autant rejeter le fichier dans sa totalité .. Pour se faire j'avais pensé effectuer une vérification préalable d'existence de dossier et rejeter (ne pas insérer) le dossier s'il était déjà présent en base.. mon souci c'est que comme j'utilise une transaction, les dossiers du fichier préalablement crées ne sont pas encore présent en table .. ils sont quelque part dans un buffer en attendant d'être entérinés ou rejetés .. comment faire simple pour contourner cette contrainte ? j'ai bien pensé garder en mémoire les dossiers préalablement crées mais cela me semble un peu lourd .. ou alors trier mes enregistrements d'entrée sur le N° dossier de façon a ce que lorsque je traite un dossier, je peux connaître assez facilement le dernier dossier traité et ne pas l'insérer à nouveau s'il est présent plusieurs fois ..

    J'imagine que cette problématique doit être assez courante ..Il y a t-il un moyen de connaitre les enregistrements en attente de validation dans une transaction ?

    Merci pour vos suggestions ou solutions de contournement...

    Laurent

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Peux-tu éliminer les doubles de ta source une fois les données importés ?

    Ou peut-être ne pas importer les doubles en mettant un index unique sur la table d'import ?

    Ou encore mettre un index unique sur ta table de destination qui va 'recracher' les doublons ?

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    J'ai procédé un peu autrement ne voulant pas jouer avec les index ..

    Je stocke en mémoire les dossiers crées et au moment d'en insérer un nouveau, je vérifie que sa référence n'est pas déjà présente en mémoire..

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonne idée si tu n'as pas trop de dossier en même temps.

    A+

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2015, 23h22
  2. [AC-2003] Modifier un champ pour tous les enregistrement d'une table
    Par Meph-Dev dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/06/2009, 08h41
  3. Réponses: 4
    Dernier message: 18/08/2008, 15h11
  4. Réponses: 5
    Dernier message: 29/04/2008, 14h30
  5. Réponses: 6
    Dernier message: 21/04/2008, 18h49

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