Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/06/2011, 00h04   #1
Invité régulier
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 5
Points : 5
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
lbrun79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 19h22   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 549
Points : 7 549
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+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 20h14   #3
Invité régulier
 
Inscription : juillet 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 46
Points : 5
Points : 5
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..
lbrun79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 23h55   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 549
Points : 7 549
Bonne idée si tu n'as pas trop de dossier en même temps.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h22.


 
 
 
 
Partenaires

Hébergement Web