|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2010 Messages : 105 ![]() |
Bonjour tous,
Tout est dans le titre: je souhaiterais récupérer tous les auteurs individuellement de ma table TblReferences sachant que le champ auteur(s) peut contenir 3 cas différents (P. pour Prénom): Nom1, P1. Nom1, P1. and Nom2, P2. Nom1, P1., Nom2, P2., Nom3, P3., Nom3, P3., ... J'ai essayé ce code pour commencer mais Access n'a pas l'air d'aimé ^^ Code :
Merci d'avance |
||
|
|
00
|
|
|
#2 | ||||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour Cinesra,
Le plus simple serait que tu écrive une fonction dans un module externe qui, à partir de la valeur de ton champ , te retourne la valeur que tu recherche, et utiliser cette fonction dans ta requête par ex (je te fais ça de tête, donc à adapter, mais le principe fonctionne) Code :
Code :
avec split = nom de ta fonction si Split est un mot réservé, change de nom. Avec ceci, tu as une infinie de possibilités pour coder ton SQL
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2010 Messages : 105 ![]() |
Oh boy!
Définitivement pas mon niveau les modules externes ![]() N'y aurait il pas une autre méthode?? En attendant je vais qd même essayer d'utiliser ce que tu viens de m'écrire... |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Si tu veux passer en SQL pur, cela sera beaucoup plus compliqué, car tu devra passer pas une combinaison de IIF(,,), ce qui va grandement enlever de la lisibilité au codage.
L'interêt de la built-in function est justement d'effectuer des tratements complexes sans avoir à le reporter dans le SQL. La limitation est que ces fonctions ne sont pas réutilisables dans du SQL standard.
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2010 Messages : 105 ![]() |
Salut,
Bon désolé mais pas moyen pour moi de comprendre comment écrire mon propre module. Par contre je pensais à qlqchose de plus simple: utiliser une boucle For pour chaque élément de Liste2 à découper. Exemple: Code :
Merci d'avance |
||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Attends, je ne comprends pas...
Ce que tu décris là est bien du code VBA, donc pas du SQL pur. Si tu veux l'intégrer, il te faudra donc bien créer ton propre module ! A moins, que, comme Mr Jourdain, tu fasses des modules sans en avoir l'air ..
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#7 | |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Citation:
Et .. oh miracle .. l'objet Module1 (ou > 1 si déjà un autre module) apparait Cliquer sur le module pour aller dans l'éditeur Visual Basic Ensuite .. il n'y a pas de limite ... juste l'imagination
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
|
00
|
|
|
#8 | ||||
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour,
Je t'ai fais un exemple : Dans une base de donnée, crée une table Table1 avec la structure suivante : Livre Auteur (S) A Allais Alphone B Dumas Alexandre, Zola Emile C BALZAC honoré D DOYLE Conan, HOLMES Sherlock, WATSON John E POTTER Harry, GRANGER hermione F WYSLEY Ronald Ensuite, créée un nouveau module Dans ce module, insère le code suivant : Code :
Code :
Nb : J'ai nommé cette fonction split2 car split est une fonction native du VBA
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com