Bonsoir,

Je découvre (et ne comprend rien) la librairie ADO pour manipuler des requêtes SQL en VBA.

Ma requête compte le nombre de jours ouvrés dans une table, mais je ne sais pas comment récupérer ce résultat pour ensuite travailler avec (le multiplier par 10, et rajouter le nombre d'heures travaillées à la date1 et à la date2).

Et enfin je voudrais rajouter le résultat de mon calcul dans ma table TEST.

Voilà mon ébauche:

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
Function Resultat(Date1 As Date, Date2 As Date) As Integer
Dim DifDate1, DifDate2 As Date
Dim Nb_jours As Integer 'Nombre de jours ouvrés entre Date1 et Date2 (récupération du résultat de la requête)
Dim base As DAO.Database
Dim rst As Recordset
 
Dif_heures = 0
Nb_jours = 0
 
'Calculer le nbre d'heures travaillées pour Date1 et Date2
DifDate1 = DateDiff("h", Hour(Date1), 18) 'Nbr d'heures travaillées le jour de Date1
DifDate2 = DateDiff("h", 8, Hour(Date2)) 'Nbr d'heures travaillées le jour de Date2
 
Set base = CurrentDb()
 
'Nombre de jours se trouvant entre les 2 dates et multiplication de ce nombre par 10 pour avoir le nombre d'heures travaillées entre les 2 dates
Set rst = CurrentDb.OpenRecordset("SELECT COUNT(*) FROM Jours_travail WHERE #" & DateValue(Date1) & "# < Jour AND #" & DateValue(Date2) & "# > Jour AND Jours_tavailles = 'Oui'")
While Not rst.EOF
     Nb_jours = rst("Nb_jours")
     rst.MoveNext
Wend
rst.Close
Set rst = Nothing
 
'Calculer le nbre d'heures travaillées pour Date1 et Date2
DifDate1 = DateDiff("h", Hour(Date1), 18) 'Nbr d'heures travaillées le jour de Date1
DifDate2 = DateDiff("h", 8, Hour(Date2)) 'Nbr d'heures travaillées le jour de Date2
 
'Addition des différents calculs
Resultat = Nb_jours + DifDate1 + DifDate2
 
End Function
 
Sub TEST2()
 
DoCmd.RunSQL ("UPDATE TEST SET `Mes résultats`= Resultat(Demand_Launch_date_Valid, Acknowledge_date_valid);")
 
End Sub