Bonjour à tous,
J'ai une base de données avec 2 tables.
LOV_Fund avec 2 colonnes : FUND_ID et FUND_Name.
PORTFOLIO avec un tas de colonnes dont en 1ère le FUND_ID.
J'ai des fichiers excel portant le nom de mes fonds.
Ces fichiers contiennent toute l'information qu'il me faut pour utiliser mon code d'import de fichier excel sauf la 1ère colonne FUND_Id que je n'ai pas dans les fichiers excel.
J'aimerais lorsque je me connecte à mon fichier excel dans mon code, créer une colonne FUND_ID et y insérer le FUND_ID correspondant au nom de mon fichier excel.(et cela pour le nombre de lignes portant des informations de ma feuille excel à partir de la 2nde ligne)
Voici mon code qui sert à importer tous les fichiers excel d'un répertoire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 Sub tranfertFeuilleClasseursFermes_VersAccess() Dim Cn As New ADODB.Connection Dim oProdRS As New ADODB.Recordset, oRS As ADODB.Recordset Dim oConn As ADODB.Connection Dim j As Integer Dim Fichier As String, Repertoire As String '------------------------------------------------------ 'Connection à la Base Access Set oConn = CurrentProject.Connection 'les données seront placés dans Table1 Set oRS = New ADODB.Recordset oRS.Open "Select * from PORTFOLIO", oConn, adOpenKeyset, adLockOptimistic '------------------------------------------------------ 'Boucle sur les classeurs Excel du répertoire cible Repertoire = "C:\Users\qdeutschle\Desktop\LiquidityRisk\FundStock" Fichier = Dir(Repertoire & "\*.xlsx") Do While Fichier <> "" 'Connection au classeur Excel Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & Repertoire & "\" & Fichier & ";" & _ "Extended Properties=""Excel 8.0;""" 'requête pour extraire les données de la Feuil1 oProdRS.Open "SELECT * FROM [Sheet1$]", Cn, adOpenStatic ' --- Transfert des données dans la base --- Do While Not (oProdRS.EOF) oRS.AddNew For j = 0 To oRS.Fields.Count - 1 oRS.Fields(j) = oProdRS.Fields(j).Value Next j oRS.Update oProdRS.MoveNext Loop '------------------------------------------- oProdRS.Close 'Fermeture de la connection au classeur Excel Cn.Close Fichier = Dir Loop oRS.Close Set oRS = Nothing 'Fermeture de la connection Access oConn.Close Set oConn = Nothing End Sub
Ma question est donc, comment faire pour sélectionner le Fund_Id correspondant au nom de mon fichier excel?
Je sais comment stocker le nom de mon fichier dans une variable :
Je pensais faire une requête du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fich = Left(Fichier, Len(Fichier) - 5)
Req = "Select Fund_Id from Lov_Fund where Fund_Name = Fich"
Ensuite mettre la valeur de Req dans toute la colonne que j'ajoute en 1ère position.
Mais comment faire cela correctement?
Partager