Débogage "Champs introuvable" ...

_dev_ Messages postés 3 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 30 octobre 2005 - 30 oct. 2005 à 11:26
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 31 oct. 2005 à 15:43
Bonjour, je recontre un problème "bizare" et aléatoire sur mon appli que je n'arrive pas à déboger...
En effet, j'ai un bouton (sub evénementielle) qui insère des données d'une table 1 à une table 2, et ensuite supprime les données de la table 1.

Pour ce faire, j'utilise le code suivant:

db.execute "INSERT INTO Table2 SELECT * FROM Table1"



Je teste 1 fois cette sub Ev. elle marche, je teste une 2 eme fois, elle marche et parfois à la 3 eme (voir 4eme, c'est aléatoire), je tombe sur l'erreur bizare "Champs introuvable".

Je me dis que l'insert ne fonctionne plus(il a fonctionné pour le 1er et 2eme test) alors je décortique (en mode débugage) un peu pour voir ce qui se passe. et ajoute le code suivant sur la ligne du dessus en faisant descendre celle-ci.

set rs = db.openrecordset (SELECT * FROM Table1)


Et la je me rends compte que c'est en fait sur le select qu'il se crach! "Champs introuvable"!
Comment ne peut-il pas trouver un champs lorsqu'on fait un select * !

A quoi pourrait être du cette erreur ? J'ai comme l'impression qu'il n'arrive pas à accéder à la Table 1 ?? J'espère que vous avez des pistes car la je suis bloqué et n'arrive pas à déboger...

Merci pour votre aide

1 réponse

TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
31 oct. 2005 à 15:43
Ok, je te propose, et je crois que c'est ce que t'as fini par faire, de décomposer ton opération en deux parties :

- l'insertion (qui marche)

-la suppression (qui plante : si il plante avec un champ introuvable,
c'est qu'il a cherché quelque chose, or il ne cherche rien dans le cas
d'une insertion)



Pour éviter les erreurs et comme je ne sais pas en quoi tu
programme, je te conseil de vérifier à chaque fois que tu
exécutes ton select, qu'il y a bien une ligne dans ton dataset(ou
recordset) :



dim str as string = "select mon champ from matable"

dim dastr as new oledbdataadapter(str, maconnection)
dim dstr as new dataset()

dstr.clear()

dim a as integer

a = dastr.fill(dstr)

if a = 0

'il n'a pas trouvé ce que tu cherchais..

else

'c'est ok

end if



Maintenant en ce qui concerne l'erreur proprement dite, une requete est
une requete et s'il ne trouve pas ta sélection c'est que :

soit personne ne correspond aux critères, soit l'élément que tu cherches a été supprimé entre-temps,

mais il faut faire confiance à l'informatique..
.Maytheforcebewithyou.Maxime.
0
Rejoignez-nous