Prob avec ADO et un objet non trouvé :S

RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005 - 26 mars 2005 à 07:36
RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005 - 26 mars 2005 à 17:26
Bonjour a tous, jai un petit probleme que je comprend absolument pas!..
voici le code causant le prob..:

Rst.Close
Cmd.CommandText = "select * from listeprojets ORDER BY Projets"
Rst.Open Cmd

le probleme cest que lors du form_load, ca passe dans un procédure ayant ca comme code a kelke part.. et tout va bien.. ensuite.. lorsque monde programme repasse dans cette procedure pke jai ajouter un projet je veux ki remette la liste deroulante a jour, desfois il marche, mais desfois non et je sais pas pkoi... desfois il na aucun probleme et d'autrefois il me dis : "Erreur '3265'" "impossible de trouver l'objet dans la collection correspondante.. blabla..." mais pourtant il a deja passé la et la trouve!! donc ou est le probleme..

precision: jai une autre procedure qui avant de passer par celle ki cause probleme, efface tous les champs de "listeprojet" et les remets au complet a partir d'une autre liste.. je sais po si ca peux affecter, mais y devrais la trouver pareil l'objet pke kan ke ca bug et je vais voir ma database, tous les champs de "listeprojet" ont été ré-écrit alors je sais po dou vient le prob.. merci de votre reponse en avance, si vous voulez plus de detail dites moi le.. merci..

il y a 10 types de personnes... ceux qui connaissent le code binaire, et ceux qui ne le connaissent pas.

6 réponses

pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
26 mars 2005 à 16:30
PAT

Peux-tu coller ton code pour que ce soit plus clair ?
0
RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005
26 mars 2005 à 16:53
voici la procedure complete...: cke ca fais en claire c ke ca vide des listes deroulantes et les rempli apres... mais des fois ca marche dautre fois ca dis ke y trouve po lobjet..

Public Sub action2()
cbGestionnaire.Clear
cbProjets.Clear
cbExecutant.Clear
cbContact.Clear
cbSecteur.Clear
cbVille.Clear
cbGestionnaire.AddItem "-"
cbProjets.AddItem "-"
cbExecutant.AddItem "-"
cbContact.AddItem "-"
cbSecteur.AddItem "-"
cbVille.AddItem "-"
Rst.Close
Cmd.CommandText = "select * from listeprojets ORDER BY Projets"
Rst.Open Cmd
miseencombo:
If Rst.EOF = True Then GoTo out1
If Rst.Fields("projets") <> "" Then
frmProjet.cbProjets.AddItem Rst.Fields("projets")
Else
'cbProjets.AddItem ""
End If
Rst.MoveNext
GoTo miseencombo
out1:


Rst.Close
Cmd.CommandText = "select * from secteur ORDER BY secteur"
Rst.Open Cmd
miseencombo5:
If Rst.EOF = True Then GoTo out5
If Rst.Fields("secteur") <> "" Then
frmProjet.cbSecteur.AddItem Rst.Fields("secteur")
Else
'cbSecteur.AddItem ""
End If
Rst.MoveNext
GoTo miseencombo5
out5:


Rst.Close
Cmd.CommandText = "select * from ville ORDER BY ville"
Rst.Open Cmd
miseencombo4:
If Rst.EOF = True Then GoTo out4
If Rst.Fields("ville") <> "" Then
frmProjet.cbVille.AddItem Rst.Fields("ville")
Else
'cbVille.AddItem ""
End If
Rst.MoveNext
GoTo miseencombo4
out4:


Rst.Close
Cmd.CommandText = "select * from contact ORDER BY contact"
Rst.Open Cmd
miseencombo2:
If Rst.EOF = True Then GoTo out2
If Rst.Fields("contact") <> "" Then
frmProjet.cbContact.AddItem Rst.Fields("contact")
Else
'cbContact.AddItem ""
End If
Rst.MoveNext
GoTo miseencombo2
out2:


Rst.Close
Cmd.CommandText = "select * from employé ORDER BY employé"
Rst.Open Cmd
miseencombo3:
If Rst.EOF = True Then GoTo out
If Rst.Fields("employé") <> "" Then
frmProjet.cbGestionnaire.AddItem Rst.Fields("employé")
frmProjet.cbExecutant.AddItem Rst.Fields("employé")
Else
'cbGestionnaire.AddItem ""
'cbExecutant.AddItem ""
End If
Rst.MoveNext
GoTo miseencombo3


out:
Rst.Close
Cmd.CommandText = "select * from projets ORDER BY client"
Rst.Open Cmd
Rst.MoveFirst

end sub

il y a 10 types de personnes... ceux qui connaissent le code binaire, et ceux qui ne le connaissent pas.
0
RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005
26 mars 2005 à 16:54
et puis juste avant daller la y passe la:

Public Sub action()
Cnxx.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\projetspetrosur11.mdb;" & "Jet OLEDB:Database"
Cmdx.ActiveConnection = Cnxx
Rstx.CursorLocation = adUseClient
Rstx.CursorType = adOpenDynamic
Rstx.LockType = adLockOptimistic
Cmdx.CommandText = "select * from projets ORDER BY client"
Rstx.Open Cmdx


Cnx2x.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\projetspetrosur11.mdb;" & "Jet OLEDB:Database"
Cmd2x.ActiveConnection = Cnx2x
Rst2x.CursorLocation = adUseClient
Rst2x.CursorType = adOpenDynamic
Rst2x.LockType = adLockOptimistic
Cmd2x.CommandText = "select * from listeprojets ORDER BY projets"
Rst2x.Open Cmd2x


Do While Rst2x.RecordCount <> 0
Rst2x.Delete adAffectCurrent
Rst2x.MoveNext
Loop
Do While Rstx.EOF <> True
If Rstx.Fields("client") <> lastp Then
Rst2x.AddNew
Rst2x.Fields("projets") = Rstx.Fields("client")
Rst2x.Update
End If
lastp = Rstx.Fields("client")
Rstx.MoveNext
Loop


Rstx.Close
Cmdx.CommandText = "select * from projets ORDER BY ville"
Rstx.Open Cmdx
Rst2x.Close
Cmd2x.CommandText = "select * from ville ORDER BY ville"
Rst2x.Open Cmd2x
Do While Rst2x.RecordCount <> 0
Rst2x.Delete adAffectCurrent
Rst2x.MoveNext
Loop
Do While Rstx.EOF <> True
If Rstx.Fields("ville") <> lastp Then
Rst2x.AddNew
Rst2x.Fields("ville") = Rstx.Fields("ville")
Rst2x.Update
End If
If Rstx.Fields("ville") <> "" Then
lastp = Rstx.Fields("ville")
Else
lastp = ""
End If
Rstx.MoveNext
Loop


Rstx.Close
Cmdx.CommandText = "select * from projets ORDER BY secteur"
Rstx.Open Cmdx
Rst2x.Close
Cmd2x.CommandText = "select * from secteur ORDER BY secteur"
Rst2x.Open Cmd2x
Do While Rst2x.RecordCount <> 0
Rst2x.Delete adAffectCurrent
Rst2x.MoveNext
Loop
Do While Rstx.EOF <> True
If Rstx.Fields("secteur") <> lastp Then
Rst2x.AddNew
Rst2x.Fields("secteur") = Rstx.Fields("secteur")
Rst2x.Update
End If
If Rstx.Fields("secteur") <> "" Then
lastp = Rstx.Fields("secteur")
Else
lastp = ""
End If
Rstx.MoveNext
Loop
Rstx.Close
Cnxx.Close
Rst2x.Close
Cnx2x.Close
End Sub

il y a 10 types de personnes... ceux qui connaissent le code binaire, et ceux qui ne le connaissent pas.
0
pjcleder Messages postés 183 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 16 septembre 2011 11
26 mars 2005 à 17:03
PAT

J'ai une piste. C'est assez classique.

A plusieurs reprises, tu fais un additem si la valeur est diiférente de chaine vide.
Le problème est que la valeur est peut-être nulle. Ce qui est différent par rapport à une chaine vide.

Essaye de déboguer et au moment où ça plante fais Affichage Fenêtre Exécution et
tape celà :

?rstx.Fields("Exemple") is nothing

Appuies sur entrée. tu dois avoir vrai ou faux.

Tiens moi au courant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005
26 mars 2005 à 17:07
il y a 10 types de personnes... ceux qui connaissent le code binaire, et ceux qui ne le connaissent pas.
0
RellikPowa Messages postés 7 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 26 mars 2005
26 mars 2005 à 17:26
ca me dis faux... mais au pire ya tu un autre moyen de mettre des fields dune DB dans un combobox ke de faire additem a chaque fiche?

il y a 10 types de personnes... ceux qui connaissent le code binaire, et ceux qui ne le connaissent pas.
0
Rejoignez-nous