jointure de tables dans une 3e table par vba
Bonjour,
Comme aucun forum ne me repond, j'essay ici
Alors je repose ma question.
Je voudrais faire une jointure de deux tables dans deux bases differentes, et mettre le resultat dans une autre table dans la base ou je suis ( la currentdb)
ex :
table1 dans la base 1 : nom, taux
table2 dans la base 2 : nom, value
table3 dans la base3: nom, taux, value
ma table 3 a deja les bons noms de champs, je voudrais la completé avec ma jointure.
Je fais ca depuis excel, pour les connections je n'ai pas de pb, mais je n'arrive pas faire une jointure ds une 3table dans une autre base.
Merci
Voici le code comme prévu
Voila j'en profite pour mettre mon code,
DailyExplanationDBConnection est une propriété get d'un objet adodb.connection
J'enchaine des execute :
Donc j'exporte dans mon template une table d'une autre base pour completer les champs de montemplate
je fais la meme avec ma deuxieme base et apres je fais une jointure :)
Voila , au début je voulais faire directement ma jointure mais bon c'est pas grave, le mauvais cotés c'est que ca mouline grave..., le code est plus long mais cette partie prend 4 minutes, je vais essayer les methodes données.. mais bon c'est ultra long ( surtout la jointure).
Code:
1 2 3 4 5 6 7 8 9
|
With DailyExplanationDBConnection(ID, d)
.Execute GetDataFactor(ReplaceDate(MyFactor("DeltaGV33B").DBLink, theDayBefore(d)), theDayBefore(d))
.Execute "UPDATE Analysis SET Analysis.[RiskFactor] = 'Delta' WHERE Analysis.[RiskFactor] is Null"
.Execute GetDataFactor(ReplaceDate(MyFactor("BasisGV33B").DBLink, theDayBefore(d)), theDayBefore(d))
.Execute "UPDATE Analysis SET Analysis.RiskFactor = 'Basis' WHERE Analysis.[RiskFactor] is Null"
.Execute "UPDATE Analysis SET Analysis.Source = 'RM' WHERE Analysis.Source is Null"
.Execute MyJoinRqte
End With |
Code:
1 2 3 4 5 6
| Function GetDataFactor(ByVal MyLink As String, ByVal MyDate As Date) As String
GetDataFactor = "INSERT INTO Analysis ( [Book], [Currency], [ExpCurrency], [Product], [Index], [Term], [Sensitivity] )"
GetDataFactor = GetDataFactor & " SELECT Data.[Book], Data.[Currency], Data.[ExpCcy], Data.[Product], Data.[SurIndex], Data.[Bucket], Data.[ValueEUR]"
GetDataFactor = GetDataFactor & " FROM Data IN '" & MyLink & "'"
GetDataFactor = GetDataFactor & " WHERE Data.[ValueDate] =" & dateSQL(MyDate) & ";"
End Function |
End Function
Code:
1 2 3 4 5
| Function MyJoinRqte() As String
MyJoinRqte = "Update(SELECT * FROM Analysis WHERE Analysis.[Source] = 'RM') as DataRM"
MyJoinRqte = MyJoinRqte & " LEFT JOIN Rates"
MyJoinRqte = MyJoinRqte & " ON (DataRM.[Index]=Rates.[Index]) AND (DataRM.[Term]=Rates.[Bucket]) AND (DataRM.[Currency]=Rates.[Ccy])"
MyJoinRqte = MyJoinRqte & " SET DataRM.[MktdataD-1] = Rates.[MktDataD], DataRM.[MktdataD-2] = Rates.[MktDataLD],DataRM.[Curve] = Rates.[Market]" |