Bonjour,

Nous avons un souci concernant une requête SQL. En effet celle ci doit récupérer l'emsemble des données d'un champ. Aprés cela on doit trouver le maximum d'heure trouvé dans le champ et l'insérer dans une variable de type Integer.

Voici le code :

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
Private Sub Command2_Click()
    Dim db As Database
    Dim Rs As Variant
    Dim Rs1 As Variant
    Dim erreur As String
    Dim HeureRestante As Integer
    Dim tmp As Integer
    Dim tmp1 As Integer
    Dim HeureTotalInt As Variant
    Dim HeureTotal As Variant
 
    If (Text8 = "") Then
        If (Text10 <> "" And Text9 = "") Then
            erreur = MsgBox("Entrez une date svp")
            Exit Sub
        ElseIf (Text9 <> "" And Text10 = "") Then
            erreur = MsgBox("Entrez un nombre d'heure(s)")
            Exit Sub
        End If
 
        If IsDate(Text9) Then
        Else
            erreur = MsgBox("La date de début de contrat doit être saisi au format JJ/MM/AAAA", vbOKOnly, "Attention")
            Exit Sub
        End If
 
       Set db = OpenDatabase("db3.mdb")
 
       Set HeureTotal = db.OpenRecordset("Select NombreHeureTotal from Client where [N°Client] = '" & Text11 & "' ")
 
       Set HeureTotalInt = db.OpenRecordset("Select NombreHeureTotalIntervention from Maintenance where [N°Client] = '" & Text11 & "'")
 
       tmp = 0
 
        While Not HeureTotal.EOF
            If HeureTotal!NombreHeureTotal > tmp Then
                tmp = HeureTotal!NombreHeureTotal
            End If
            HeureTotal.MoveNext
        Wend
 
 
       tmp1 = 0
 
       HeureTotalInt.MoveFirst
       While Not HeureTotalInt.EOF
            If HeureTotalInt!NombreHeureTotalIntervention > tmp1 Then
                tmp1 = HeureTotalInt!NombreHeureTotalIntervention
            End If
            HeureTotalInt.MoveNext
        Wend
 
       tmp1 = tmp1 + Text10
 
       HeureRestante = tmp - tmp1
 
        Set Rs = db.OpenRecordset("select * From Maintenance", dbOpenDynaset)
        Rs.AddNew 'Ajoute un enregistrment'
 
        Rs.Fields("DateIntervention") = Text9.Text
        Rs.Fields("NombreHeureIntervention") = Text10.Text
        Rs.Fields("NombreHeureTotalIntervention") = tmp1
        Rs.Fields("N°Client") = Text11.Text
        Rs.Fields("HeureRestante") = HeureRestante
 
        Exit Sub
Le soucis provient de la requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set HeureTotal = db.OpenRecordset("Select NombreHeureTotal from Client where [N°Client] = '" & Text11 & "' ")
L'erreur est la 3464: Type incompatible.

Auriez vous une idée d'aide?

Je vous remercie d'avance.