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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| If Left(Fichier, 4) = "NAV_" Then
TableExiste = True
Set oRS = New ADODB.Recordset
oRS.Open "Select * from HISTO_FUND", oConn, adOpenKeyset, adLockOptimistic
Set oCat = New ADOX.Catalog
Set oCat.ActiveConnection = Cn
Fich = Right(Fich, Len(Fich) - 4)
For Each Feuille In oCat.Tables
FeuilName = Feuille.Name
If FeuilName <> "Ident$" Then
'requête pour extraire les données de la Feuil1
oProdRS.Open "SELECT * FROM [" & FeuilName & "] ", Cn, adOpenStatic
FeuilNames = Left(FeuilName, Len(FeuilName) - 2)
FeuilNames = Right(FeuilNames, Len(FeuilNames) - 1)
' --- Transfert des données dans la base ---
Do While Not (oProdRS.EOF)
For j = 1 To oProdRS.Fields.Count - 1
ColName = oProdRS.Fields(j).Name
' Si le SC_ID du nom de la colonne n'existe pas, on le crée, et on stocke ce nouveau SC_ID dans LOV_FUND
If IsNull(DLookup("[SC_ID]", "LOV_FUND", "[Share_Class] = '" & ColName & "' ")) Then
IdColName = DLookup("Max([SC_ID])", "LOV_FUND")
IdColName = IdColName + 1
RepIdColName = IdColName
'On ajoute une nouvelle share_class à LOV_FUND ou bien nouveau sous-fonds
oProdRSS.Open "SELECT * FROM [Ident$] WHERE [Share_Class] = '" & ColName & "'", Cn, adOpenStatic
Set oPS = New ADODB.Recordset
oPS.Open "Select * from LOV_FUND", oConn, adOpenKeyset, adLockOptimistic
oPS.AddNew
oPS.Fields(0) = IdColName
oPS.Fields(1) = Fich
oPS.Fields(2) = FeuilNames
oPS.Fields(3) = ColName
oPS.Fields(4) = oProdRSS.Fields(2)
oPS.Fields(5) = IdColName
oPS.Fields(6) = oProdRSS.Fields(4)
oPS.Fields(7) = oProdRSS.Fields(5)
oPS.Fields(8) = oProdRSS.Fields(6)
oPS.Fields(13) = True
oPS.Update
oPS.Close
oProdRSS.Close Else
IdColName = DLookup("[SC_ID]", "LOV_FUND", "[Share_Class] = '" & ColName & "' ")
RepIdColName = DLookup("[Representative_SC_ID]", "LOV_FUND", "[Share_Class] = '" & ColName & "' ")
End If
If IdColName = RepIdColName Then
oRS.AddNew
oRS.Fields(0) = IdColName
oRS.Fields(1) = oProdRS.Fields(0).Value
oRS.Fields(2) = oProdRS.Fields(j).Value
oRS.Update
End If
Next j
oProdRS.MoveNext
Loop
oProdRS.Close
End If
Next Feuille
oRS.Close |
Partager