Bonjour,
J'essai de passer une connection en argument dans cette fonction :
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
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
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.
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)
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.
Partager