|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 22 ![]() |
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 :
Donc j'ai déjà éssayé pas mal de chose et la je désespère.... Merci d'avance pour vos réponses !! |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
mettre le message complet pour avoir plus de chances de réponses, erreur 91 ne parle pas à tout le monde je suppose que Monteur2 est bien un champ de la table PV_DMS? que contient RecupNomPerso? quelque chose qui pourrait expliquer la perte du recordset?
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
10
|
|
|
#3 | |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 22 ![]() |
Citation:
Donc Monteur2 est bien un champs de la table PV_DMS RecupNomPerso est une procédure car dans la table PV_DMS je récupère un ID et avec recup nom perso je fait une autre requete sql pour obtenir le nom associé à l'ID. Quand a la perte du recordset c'est bien sa mon problème j'arrive pas à comprendre, il pourrait y avoir un conflit avec la procédure RecupNomPerso (qui utilise aussi une connexion avec la bdd) |
|
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
il y a peut-être une petite erreur, genre une fermeture de rst au lieu de rst1...
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
10
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 22 ![]() |
Citation:
J'y ai rajouter rst1 (avant j'avais rst) Citation:
Finalement j'ai retirer le ConnecDB.close à la fin de RecherchePV vu que de toute facon la connexion sera fermé dans le RecupNomPerso. En tout cas merci beaucoup !! Je pense que le problème est clos ![]() Bonne journée !! |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
Effectivement il ne faut pas utiliser la même connection. La variable ConnecDB étant public au niveau module, c'est la même variable ConnecDB qui est utilisée partout. Et donc RecupNomPerso ferme cette connection qui n'est plus utilisable par la suite de RecherchePV. (En plus la cible n'est pas la même, donc il faut bien 2 connections distinctes.) L'inconvénient c'est que tu ouvres et fermes la connection à chaque appel de la procédure RecupNomPerso. Si tu as 1000 entrées dans ta table et que tu appelles 4 fois RecupNomPerso pour chaque entrée, tu fais 4000 ouvertures et fermeture de la connection. Cela peut peut-être être un peu long si la base est en réseau? Tu peux éventuellement déclarer une variable public ConnectDBNom : Code :
public ConnectDBNom as ADODB.Connection Dans RecupNomPerso tu utilises cette connection mais tu ne l'ouvres et fermes pas, c'est déjà fait dans RecherchePV. Comme ça tu ne fais qu'une seule ouverture et fermeture. Il faut juste être bien carré dans con code pour faire les ouvertures et fermetures au bon moment. Pour les connections et recordset utilisés uniquement par une seule procédure, il faut mieux les mettre en privé dans cette procédure. Par exemple rst1 qui est utilisé par RecupNomPerso, le déclarer au début la procédure : Comme ça on n'est sûr de ne pas l'utiliser par erreur dans une autre procédure. Au passage, j'évite les variables genre rst et rst1, on ne sait plus ensuite qui fait quoi. Et une dernière chose : NomPerso est public et garde donc sa valeur entre chaque exécution de RecupNomPerso. Il faudrait l'initialiser au début de la procédure, sinon s'il n'est pas trouvé il gardera la valeur précédente. Code :
Pour finir, un tuto pratique pour débuter en VBA et comprendre les variables, fonctions, ... : Initiation au VBA Office Bon courage.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 22 ![]() |
Effectivement cette application est en réseau, j'ai donc suivi tous tes conseils.
Merci pour l'attention apporté à mon problème. Je vais pouvoir continuer Merci beaucoup arkham. Bonne journée, |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com