VBA Access concatener deux Query
Bonjour
Mon objectif est double :
- faire trois requêtes en vba
- Concaténer deux requêtes en utilisant le résultat de la troisième
exemple
requête 1 : renvoie le nom de l'ingrédient qui doit être utilisé
requête 2 : revoie le poids total de la recette
requête 3 : revoie la quantité de l'ingrédient dans la recette
Résultat voulu : NomIngrédient1 (Quantité en %), NomIngrédient2 (Quantité en %), ... en fonction du nombre d'ingrédient de la recette.
J'ai réussi à faire la requête sur le nom de l'ingrédient
J'ai réussi à faire la requête sur la quantité totale (même si elle n'est pas parfaite , elle renvoie la bonne valeur)
Je n'ai pas réussi à faire la troisième requête.
> comment diviser une valeur par un nombre obtenu dans une autre requête (requête 2) ?
> comment concaténer les deux requêtes ?
Ci dessous le code d'obtention de la somme des ingrédients; la valeur "SommeRecetteVersion" obtenue à la fin est Public
Code:
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
|
Public Sub ValeurSomme(ByVal RecetteVersion As Integer)
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim requete As DAO.QueryDef
Dim sSQL As String
Dim SomRecetteVersion
Set db = CurrentDb
Set requete = db.CreateQueryDef("", "SELECT ..................." _
& " FROM ....................." _
& " GROUP BY ..............................." _
& " HAVING ...............................=" & RecetteVersion)
Set rst = requete.OpenRecordset()
rst.MoveFirst
If Not rst.EOF Then
rst.MoveFirst
While Not rst.EOF
SomRecetteVersion = SomRecetteVersion & rst.Fields(0).Value & " "
rst.MoveNext
Wend
End If
Set rst = Nothing
SommeRecetteVersion = SomRecetteVersion
End Sub |
Ci dessous le code pour concaténer les deux requêtes
Code:
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
|
Public Function RequeteConcatenation()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rst1 As DAO.Recordset
Dim requete As DAO.QueryDef
Dim requete1 As DAO.QueryDef
Dim valeur as Integer
Set db = CurrentDb
Call ValeurSomme(RecetteVersion) ' ici RecetteVersion sera donné par une txtbox du formulaire
Set requete = db.CreateQueryDef("", "SELECT .......")
Set requete1 = db.CreateQueryDef("", "SELECT .......")
Set rst = requete.OpenRecordset()
Set rst1 = requete1.OpenRecordset()
rst.MoveFirst
If Not rst.EOF Then
rst.MoveFirst
While Not rst.EOF
valeur = valeur & rst.Fields(0).Value & " ( " & valeur & rst1.Fields(0).Value & " %)"
rst.MoveNext
rst1.MoveNext
Wend
End If
Set rst = Nothing
Set rst1 = Nothing
msgbox valeur
End Function |
Questions :
comment concaténer les deux requêtes
Comment diviser la quantité par le poids total et ainsi obtenir le % de l'ingrédient ?
Merci de votre aide