|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : février 2007 Messages : 34 ![]() |
Bonjour
Je travaille sur 2 fournisseurs de données : le premier contient une liste de personnes dans un fichier Excel (environ 1000 identifiants) le deuxième me permet d'aller chercher dans une base des informations complémentaires avec les identifiants du fichier contenu dans Excel. Les 2 fournisseurs sont liés par un identifiant. Si dans le ficheir Excel j'ai 1000 identifiants, dans la base accédée par le deuxième fournisseur j'ai 50 000 personnes. Quand je lance ma requête, je récupère bine mes informations complémentaires provenant de la base. Oui mais (il y a un mais) BO remonte les 1000 identifiants d'excel et les 50 000 lignes de la base. Tout cela au final fait une grosse requête, un gros fichier à stocker, des temps d'exécution longs, des temps de réponse pas bons et quand je veux travailler sur des filtres ou des graphiques par exempe àa moline très fort. Je ne peux pas créer une invite ou je devrais saisir 1000 identifiants ce serait trop long. En lisant les différents sujets du forum, j'ai vu plusieurs fois où on faisait allusion à VB ou à des filtres "programmés". La question que je me pose : Est il possible de créer un seul fournisseur de données en accès sur la base et créer un invite miracle qui irait lire le contenu du ficheir Excel pour extraire de la base uniquement les lignes idientifiées par les identifiants du fichier Excel ? Suis je clair ? merci pour la réponse et bonne journée jean marie |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
pas facile...
Avec un macro ça doit être faisable mais très difficilement ! Je pense qu'il vaut mieux trouver un moyen de placer le contenu de ton fichier Excel dans une table de ta base de donnée et de l'ajouter à ton univers, afin de faire une requete classique !!! bon courage |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2007 Messages : 28 ![]() |
Il ne faut pas lier les 2 requètes.
Retourne dans l'éditeur de ta 2nd requète (celle tapant dans ta base de données). Pose une condition sur l'objet commun aux 2 requètes du genre : Identifiant Dans liste sélectionner les résultats de la requète et sélectionne ton 1er fournisseur de données. Normalement, ça marche. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2006 Messages : 37 ![]() |
Bonjour,
Effectivement, cela fonctionne, mais sur qq lignes me sembles t'il. Il semble qu'il soit influencé par le nombre de colonnes de la 1ère requête ainsi que par le nombre le valeurs. Lors de mes essais, BO plantait Lorsque la 1ere requête comportait env 150 lignes et 5 ou 6 colonnes et env 250 à 300 lignes sur 1 seule colonne. A essayer dans tous les cas. cela dépend peut être de la capacité mémoire du pc (je n'ai pas eu l'occasion de faire des tests sur plusieurs PC). A noter que la doc BO préconise de lancer 2 requêtes différentes puis de les lier ensuite. |
|
|
00
|
|
|
#5 | |
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 84 ![]() |
Citation:
c'est une limite fixe dans la base de données Oracle (au moins jusqu' a la 9.i ) L'autre solution qui est utilisée c'est de faire les 2 requetes à part et de filtrer ensuite dans le document. |
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : février 2007 Messages : 34 ![]() |
Merci pour toutes vos réponses
DBD ORA 001795 le nombre maximum d'expression autorisé dans une liste est 1000 En fait je suis chocolat car ma liste dans mon tableau EXCEL fait un peu plus de 3000 ocurrences. J'ai lié les 2 requêtes. Mais quand BO ne trouve pas l'équivalent dans le fichier excel il remonte l'info comme si la valeur était présente. J'ai contourné la difficulté en identifiant les occurrences qui ne devaient pas être matchées (environ 150 occurrences) et après dans un filtre dynamique j'ai exclu cess occurrences maius cela me fait 150 tests dans le filtre dynamique. Ca mouline pendant un certain temps (10 minutes environ) mais j'ai mon résultat. Ce n'est pas très performant. Bon week end jean marie |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com