Erreur (object variable or with block variable not set), Aide ADODB
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:
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 !!