|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bonjour à tous,
Je vous explique ce que je dois faire : J'ai un fichier access avec 2 tables : LOV_FUND et HISTO_FUND. LOV_FUND est constitué de 10 colonnes : SC_ID, Fund_Name, Subfund_Name, Share_class, Representative SC_ID, Benchmark, Currency, Fund_Type, Sigma_lim et R2. Histo_Fund est constitué de 6 colonnes : SC_ID, Date_NAV, Official_NAV_Share, Nb_Shares, DividendperShare, NAV_SharewithoutDividend. J'ai un ensemble de fichier excel portant les noms : NAV_Fund_Name, des différents fonds de ma base.(certains ne sont pas encore dans la base) La structure des fichiers excel est la suivante : Une feuille Ident avec en colonne : Fund_Name, SubFund_Name, Benchmark, Currency, Fund_Type. Cette feuille comporte la liste des sous-fonds du fonds. J'ai ensuite plusieurs autres feuilles portant le nom des sous-fonds et ayant la forme suivante : Sur la 1ère ligne j'ai : Date_Nav et les noms des share_class. Sur les lignes suivantes j'ai une date à laquelle est associée un Official_NAV_Share (nombre). Mon problème est que je dois importer toutes les valeurs des NAV des share_class en identifiant les noms et les SC_ID, mais les SC_ID ne sont pas dans les feuilles excel et donc, lorsque j'importe les données, je dois juste importer les NAV mais en y associant les bon SC_ID par rapport aux bonnes share_class... J'ai pensé à 2 méthodes : - Importer l'ensemble des données dans une table temporaire et faire des requêtes dessus pour extraire les données (mais je ne sais absolument pas comment faire et cela m'a l'air très difficile). - Modifier la forme de mes feuilles excel pour qu'elles correspondantes à la forme de mes tables. (cad y ajouter la colonne SC_ID qui correspond à la bonne share_class) Pour commencer laquelle de ses 2 méthodes seraient la plus adéquates (bien sûr tout cela avec VBA Access)? Et connaisseriez-vous alors du code pour que je puisse avoir une base de travail? |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bonjour, donc pour ceux qui ont déjà vu mes discussions sur ce site, j'utilise toujours le même programme pour extraire les données d'excel vers access, donc pour ne pas perdre les bonnes habitudes encore une fois le même ^^ :
Code :
Les problèmes qui restent sont : - de faire une boucle sur les feuilles du classeur où je suis connecté(sauf la feuille ident) - de stocker les identifiants, correspondants aux noms de mes colonnes dans les classeurs excel(c'est-à-dire la 1ère colonne), dans une variable que je mettrais à la place de mon 449 dans mon code.(il faut donc checker le nom de ma colonne pour ensuite checker le SC_ID) Pour l'instant je ne vois rien d'autres ^^, alors si vous avez des propositions pour faire ces étapes, je suis preneur ^^! |
||
|
|
10
|
|
|
#3 | ||
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bon j'ai trouvé comment faire une boucle sur le nom des feuilles, il me reste plus qu'à stocker l'Id.
Voila ce que j'ai maintenant : Code :
J'ai le nom des shareclass en colonne dans mes feuilles excel (sauf la 1ère qui est la date). Dans ma DB j'ai les champs : SC_ID, Fund_Name(qui est aussi le nom des fichiers excel), SubFund_Name(qui est le nom de mes feuilles), Share_class(nom de mes colonnes excel), Representative_SC_ID. Alors le truc c'est que je dois importer dans ma DB que les share_class des representative_SC_ID. En gros chaque fichier excel est un fonds, dans chaque fonds j'ai plusieurs sous fonds et dans chaque sous fonds j'ai plusieurs share_class mais à chaque fois j'ai qu'une seule representative share_class. Et c'est elle que je veux importer. Pour cela il faudrait que je check son SC_ID dans la DB. Le problème est que dans ma DB j'ai (par exemple) pour le mm fonds, mm sous-fonds : SC_ID : 449, 450, 451, 452 Share_class : SC1, SC2, SC3, SC4 (ce sont aussi les noms des colonnes dans les feuilles excel) Rep_SC_ID : 450, 450, 450, 450 Le but est de stocker 450 dans une variable afin d'importer seulement la colonne portant le nom SC2. Et là je bloque, une proposition ? (je sais utiliser les requêtes sur Access, je sais utiliser la fonction Dlookup pour extraire une valeur, mais ici je ne sais pas comment faire) Merci d'avance pour vos réponses. |
||
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bon bin rebonjour, voila j'ai trouvé comment faire, j'ai plus qû'a faire une gestion des fonds non existants, sous-fonds non existants et share_class non existantes ^^.
Je pense réussir tout seul, ce que j'ai fait depuis le début de cette discussion lol! Bon bin merci quand même pour ceux qui se sont donnés la peine de réfléchir un petit peut à mon problème, je met le bout de code que j'ai modifié et je post en résolu ! Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com