Bonjour,

J'essai de passer une connection en argument dans cette fonction :

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
 
Function update_injecteur(ByRef cnn As ADODB.connection)
 
 
    Dim rst As New ADODB.Recordset
 
    Dim requetteSQL As String
 
    Dim idOp As String
    idOp = saisi.Label8.Caption
 
    Dim idLo As Integer
 
    If saisi.Label8.Caption = "-1" Then
        idLo = -1
    Else
        idLo = saisi.ComboBox1.Value
    End If
 
 
    requetteSQL = "SELECT injecteur.idInjecteur, injecteur.numeroSerie, injecteur.dateDebutCreation, injecteur.dateFinCreation, injecteur.numCycleEnCours, injecteur.idLot " _
    & " FROM injecteur, lot " _
    & " WHERE idInjecteur NOT IN (SELECT idInjecteur FROM realisationoperation WHERE idOperation<" & idOp & ") " _
    & " AND lot.idLot =" & idLo & " " _
    & " AND injecteur.idLot = lot.idLot;"
 
    'ListBox1.ColumnCount = 2
    'ListBox1.BoundColumn = 2
    'ListBox1.ColumnWidths = ";0"
 
    Dim i As Integer
 
    'i = 1
 
    Debug.Print requetteSQL
 
    rst.Open requetteSQL, cnn
 
    saisi.ListBox1.Clear
 
    While Not rst.EOF
        saisi.ListBox1.AddItem (rst.Fields("numeroSerie"))
        'Me.ListBox1.list(0, 1) = rst.Fields("idInjecteur")
        rst.MoveNext
        'i = i + 1
    Wend
 
    rst.Close
 
End Function
J'appelle ma fonction ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Option Explicit
 
Dim conn As ADODB.connection
 
Private Sub ComboBox1_Change()
 
Set conn = connection
 
update_injecteur (conn)
Mais cela ne marche pas. J'obient l'erreur 'incompatibilité de type' à la ligne update_injecteur(conn). Je ne comprends pas pourquoi, j'ai essayé (au cas où...) ByVal au lieu de ByRef, cela ne change rien.

Je précise que si je créer une nouvelle connection à chaque appelle de la fonction update_injecteur cela marche, mais c'est un peu lent et c'est surtout très sale comme technique !

Auriez vous svp une idée d'où pourrai venir mon problème ?

Merci pour votre aide.