Bonjour à tous,

j'ai longtemps hésité à venir poster, mais la je suit vraiment bloquer :s

Donc voila j'ai une bdd en ms sql serveur 2005 et je programme une interface en vb6.

J'ai déjà fait quelques programmes qui communiquent entre les 2 logiciel pas de problème et là j'ai voulu faire une boucle pour la copie de champs, d'habitude dans ma boucle j'avais une seul valeur a récuperer (while not eof etc...) ici je récupere 5 collone par ligne et dès que j'arrive sur une autre commande de récupération de champs sa plante.

Bon voici mon code sa sera plus clair !

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
68
69
70
71
72
73
74
75
76
77
78
79
80
' VARIABLE

' Pour recherche du PV
Public Date_PV1 As String
Public Date_PV As String
Public NbrePV As Integer
Public TabPV() As String
Public IDPerso As Integer
Public NomPerso As String

'Declaration d'objet pour la BDD
Public ConnecDB As ADODB.Connection
Public rst As ADODB.Recordset
Public rst1 As ADODB.Recordset


' PROGRAMME

Public Sub RecherchePV() 'Recherche le PV selon les critères
'   (1)
 Set ConnecDB = New ADODB.Connection
 ConnecDB.Provider = "SQLOLEDB.1"
 ConnecDB.ConnectionString = "Persist Secutity Info= False;User ID= user;Password= X;Initial Catalog= TEST;Data Source= X\SQLEXPRESS;"
 ConnecDB.Open
'   (2)
 Set rst = New ADODB.Recordset
'   (3)
rst.Open "SELECT * From PV_DMS Where (DateCreationPV >= " & Date_PV & ") And (DateCreationPV < " & Date_PV1 & ") And (IDProduit = " & choixidproduit & ") And (IDPresse = " & choixidpresse & ")", ConnecDB
'   (4)
 If rst.EOF = False Then
    rst.MoveFirst
    NbrePV = 0
    While Not rst.EOF
        NbrePV = NbrePV + 1
        rst.MoveNext
    Wend
    ReDim TabPV(1 To NbrePV)
    NbrePV = 0
    rst.MoveFirst
    While Not rst.EOF
        NbrePV = NbrePV + 1
        IntRecupData = rst("IDPV")
        TabPV(NbrePV) = IntRecupData
        Frm_Page_Principale.MSFlexGrid1.AddItem (IntRecupData)
        Frm_Page_Principale.MSFlexGrid1.Row = NbrePV
        
        IDPerso = rst("Monteur1")
        RecupNomPerso
        Frm_Page_Principale.MSFlexGrid1.Col = 1
        Frm_Page_Principale.MSFlexGrid1.Text = NomPerso
        
        IDPerso = rst("Monteur2") 'JE PLANTE ICI
        RecupNomPerso
        Frm_Page_Principale.MSFlexGrid1.Col = 2
        Frm_Page_Principale.MSFlexGrid1.Text = NomPerso
        
        IDPerso = rst("Regleur")
        RecupNomPerso
        Frm_Page_Principale.MSFlexGrid1.Col = 3
        Frm_Page_Principale.MSFlexGrid1.Text = NomPerso
        
        IDPerso = rst("GapLeader")
        RecupNomPerso
        Frm_Page_Principale.MSFlexGrid1.Col = 4
        Frm_Page_Principale.MSFlexGrid1.Text = NomPerso
        
        rst.MoveNext
    Wend
    For x = LBound(TabPV) To UBound(TabPV)
        Frm_Page_Principale.Combo7.AddItem (TabPV(x))
    Next x
    Frm_Page_Principale.Combo7.Text = ""
Else

 End If
'   (5)
 ConnecDB.Close
 Set rst = Nothing
 Set ConnecDB = Nothing
End Sub
NB j'ai mit en rouge l'endroit ou sa plante.

Donc j'ai déjà éssayé pas mal de chose et la je désespère....

Merci d'avance pour vos réponses !!