Concaténer deux lignes sous Access ?

Concaténer deux lignes sous Access ? - VB/VBA/VBS - Programmation

Marsh Posté le 26-02-2008 à 20:50:07    

Bonjour,
 
Ne connaissant pas le VB/VBA, je pose ma question ici car je travaille sous Access.
http://soraho.free.fr/exemple.PNG
A gauche, la table que je voudrai retraiter et à droite le résultat que je souhaiterai avoir.
Cela revient à concaténer des lignes si jamais elles ont le même id mais le fait que des options diffèrent, je voudrai les regrouper en une seule ligne/id.
J'ai eu beau me creuser la tête, je n'arrive à rien  :pt1cable:  
 
Merci d'avance,
 
Arnaud.

Reply

Marsh Posté le 26-02-2008 à 20:50:07   

Reply

Marsh Posté le 26-02-2008 à 22:55:18    

Je débute aussi en Access (deux semaine) et VBA (hier)
Et j'ai aussi quelques problèmes alors ne prend pas mes infos comme sures à 100%...
 
Ya un problème: tu ne peut pas avoir plusieurs enregistrements avec le même "ID" si c'est ta clef primaire
 
Ensuite à ma connaissance tu ne peut pas assembler plusieurs lignes en une seule.
Mais tu peut mettre à jour une ligne en fonction des autres et supprimer les lignes en trop.
 
En php j'aurai fait une boucle sur ta table initiale vers une nouvelle table.
Ensuite j'aurai supprimé à la main la vielle table puis renommé correctement la nouvelle.
 
Mais en VBA je ne sais pas, cherche du coté des boucles.


---------------
Liberkey, colection d'utilitaires sur clef USB / Silverstone DS380 - Mini tour ITX 8 baies Hot-swap 3.5"
Reply

Marsh Posté le 26-02-2008 à 23:28:24    

Il s'agit de données que j'ai récupéré et il y n'y a pas de clé primaire.  

LimDul a écrit :

Ensuite à ma connaissance tu ne peut pas assembler plusieurs lignes en une seule.
Mais tu peut mettre à jour une ligne en fonction des autres et supprimer les lignes en trop.


Ok, c'est déjà un point dont je n'étais pas sûr mais dont je m'en doutais l'impossibilité de concaténer des lignes comme cela.
Je vais suivre ton conseil et me plonger dans une boucle en VBA.
 
Merci.

Reply

Marsh Posté le 27-02-2008 à 00:08:27    

Je te conseil aussi de déclarer ton ID comme clef primaire quand tu aura tout assemblé.


---------------
Liberkey, colection d'utilitaires sur clef USB / Silverstone DS380 - Mini tour ITX 8 baies Hot-swap 3.5"
Reply

Marsh Posté le 27-02-2008 à 07:46:06    

essaie la fonction de regroupement max (ou min) ...
 
=>  
select id, max(option1),max(option2), max(option3)  
from matable
group by id  
 
sinon faut "jouer" avec la fonction iif (avec 2i le iif ;-)


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

Marsh Posté le 28-02-2008 à 19:40:20    

vttman2 a écrit :

essaie la fonction de regroupement max (ou min) ...
 
=>  
select id, max(option1),max(option2), max(option3)  
from matable
group by id  
 
sinon faut "jouer" avec la fonction iif (avec 2i le iif ;-)


 
Merci beaucoup ! Je n'avais pas pensé à la fonction max :P
Ça marche très bien :D
 

Reply

Sujets relatifs:

Leave a Replay

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