Une sorte de comparaison d'un fichier excel et une table access.

Une sorte de comparaison d'un fichier excel et une table access. - VB/VBA/VBS - Programmation

Marsh Posté le 23-01-2009 à 13:52:20    

Bonjour tout le monde,
J'ai un souci, je veux écrire un programme en vba qui trouve les lignes existant dans un fichier excel et pas dans une table access, et m'envoient ces lignes dans une autre table access.
 
J'ai vu la méthode find d'ADO mais je ne sais vraiment comment faire.
 
Help please.

Reply

Marsh Posté le 23-01-2009 à 13:52:20   

Reply

Marsh Posté le 23-01-2009 à 14:22:14    

Le plus simple est encore d'importer sous Access ton fichier Excel, et ensuite de faire une requête de non existence sous Access... tu ne travailles alors qu'avec des tables d'une base de données, et c'est bcp plus simple.

Reply

Marsh Posté le 23-01-2009 à 14:46:33    

Merci Ptit loup pour ta reponse, c'est une bonne idée mais pas très élegante pour mon cas et au fait j'ai oublié de mentionner que j'avais déja écrit un code en vba qui me permet de renvoyer les lignes d'un fichier excel vers une table access ( donc ce code permet d'ajouter les lignes du fichiers excel aux lignes déja existants dans ma table ( même format )), ce code je l'ai ecrit dans le cadre d'un autre projet donc si j'arrive à savoir comment identifier les lignes qui n'existent pas dans mon autre base access le tour sera joué.
 
C'est une sorte de comparaison entre un fichier excel et une table access mais je ne sais pas comment proceder.

Reply

Marsh Posté le 23-01-2009 à 15:04:07    

benji35 a écrit :

Merci Ptit loup pour ta reponse, c'est une bonne idée mais pas très élegante pour mon cas et au fait j'ai oublié de mentionner que j'avais déja écrit un code en vba qui me permet de renvoyer les lignes d'un fichier excel vers une table access ( donc ce code permet d'ajouter les lignes du fichiers excel aux lignes déja existants dans ma table ( même format )), ce code je l'ai ecrit dans le cadre d'un autre projet donc si j'arrive à savoir comment identifier les lignes qui n'existent pas dans mon autre base access le tour sera joué.
 
C'est une sorte de comparaison entre un fichier excel et une table access mais je ne sais pas comment proceder.


 
 
Bonjour,
 
Je comprend pas exactement la partie en gras mais voici ce que je ferai
 
Au lieu d'importer la table fais simplement une liaison. Ainsi tu crée une table identique à ton fichier Excel et mis à jour dynamiquement.
 
Il ne te reste plus que la requete à faire après.

Reply

Marsh Posté le 23-01-2009 à 15:46:07    

D'abord je vous remercie pour vos reponses rapides, mais finalement je vais procéder autrement, sauf que j'ai un souci qui est de savoir comment reperer des "presque doublons" ( doublons à un champs près ) dans une tables access.
 
Encore une fios merci.

Reply

Marsh Posté le 23-01-2009 à 15:50:03    

La notion de "presque doublon" n'est pas gérée dans Access  :o  
 
Non sérieux, explique... on peut peut etre aider

Reply

Marsh Posté le 23-01-2009 à 15:52:05    

En fait je peux pas utilisé la clé pour comparer ( mes doublons peuvent identifiés que par comparaison via 3 champs ) et c'est la que ça coince, j'ai pensé à ajouté un autre champ ou je concatène ces 3 champs puis l'utiliser comme clé mais si vous avez une autre solution je suis preneur.

Reply

Marsh Posté le 23-01-2009 à 15:58:45    

En gros tu veux si tu as une table comme ca:
 
  id      Colonne1      Colonne2      Colonne3
  1       AA                  FF                  TT
  2       AA                  FF                  TT
 
tu veux supprimer une des deux lignes c'est ca?

Reply

Marsh Posté le 23-01-2009 à 16:04:09    

Oui voila mais pas la supprimer l'envoyer dans une nouvelle table ( pour archivage ) puis suppimer les deux lignes dans ma table "principale" ( qui correspond à ta table ).
 
PS : désolé si je m'exprime mal.

Reply

Marsh Posté le 23-01-2009 à 16:09:44    

Tenez pas compte de mon dernier message, je me suis gourré dans la façon dont je veux réaliser la chose.
 
Je vais reflechir à une autre façon et si j'ai besoin je me permettrais de revenir vers vous.
 
UN GRAND MERCI.

Reply

Marsh Posté le 23-01-2009 à 16:09:44   

Reply

Marsh Posté le 23-01-2009 à 16:15:59    

Pas de soucis  ;)

 

Je suis pas un expert en Access mais voila comment je m'y prendrais

 

Je ferai d'abord une requête pour afficher les doublons:  ( Je marque en SQL il te suffit de le copier et faire les modifs dans access)

 

SELECT test.champ1, test.champ2, test.champ3, Count(test.champ1) AS CompteDechamp1
FROM test
GROUP BY test.champ1, test.champ2, test.champ3
HAVING (((Count(test.champ1))>1));

 


Ensuite je ferai une deuxième requete pour afficher les id:

 

SELECT test.id, test.champ1, test.champ2, test.champ3
FROM test1 INNER JOIN test ON (test1.champ3 = test.champ3) AND (test1.champ2 = test.champ2) AND (test1.champ1 = test.champ1);

 

La tu as la liste des doublons avec leurs ID

 

Il te reste plus qu'a les traiter.

 

En espérant t'avoir aidé


Message édité par aspirateur le 23-01-2009 à 16:16:17
Reply

Marsh Posté le 23-01-2009 à 16:49:51    

En tout cas merci beaucoup.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed