Fonction de connexion à SQL SERVER - VB/VBA/VBS - Programmation
Marsh Posté le 04-05-2005 à 12:14:37
J'ai crée ce module pour me faciliter les requetes...
Voici le code... en espérant que ca te soit utile...
Code :
|
Marsh Posté le 04-05-2005 à 13:49:30
Sinan a écrit : Bonjour, |
Salut,
Alors il y a plusieurs choses à considérer... Premièrement, ce n'est pas forcément très utile d'ouvrir et fermer la connexion à ta DB à chaque requête. Il serait plus logique de l'ouvrir au début de ton programme et de fermer la connexion à la fin de ton programme. Ca c'est une chose.
Ensuite, c'est normal que ton code de recherche ne connaisse pas la variable coBase puisqu'elle est déclarée dans le code d'une autre fonction! Il te faut réviser la question de la portée des variables
Pour ce qui est du code que tu as écrit pour le bouton rechercher... Hum, comment dire... Ne déclare jamais des variables au milieu de ton code, déclare les toujours au début de ta fonction/procédure. Et ceci juste pour plus de clarté dans la relecture de ton code... Et puis si VB te laisse le faire, ce n'est pas le cas de tout les autres langages. Donc prend tout de suite des bonnes habitudes!
Pour revenir à ton problème principal qui est la connexion à ta DB. Ce que je te propose c'est soit de définir une classe "connexion" que tu instancies à chaque fois que tu en as besoin. Comme ça tu auras accès à ta connexion... Autrement, ce que tu peux faire c'est de définir comme "public" à tout ton projet la variable de connexion. Et le tour est joué.
Mais dans les deux cas, je te propose tout de même de tenir compte de ce que je disais au début de mon message: ouvre une fois ta base au début de ton programme, ferme la une fois à la fin.
Marsh Posté le 04-05-2005 à 16:06:59
Très bien, merci gfa pour ton message
Je vais tenter d'ouvrir et de fermer la base à l'ouverture et à la fermeture du programme.
Mais seulement, je ne comprend pas où, dans mon code, je peux faire ça, vu que tout est évenementiel.
Sinon, suffit t'il que je déclare mes variables et fonctions en 'public' pour que je n'ai pas de problèmes lors de l'appel de mes fonctions sql ?
Marsh Posté le 04-05-2005 à 16:24:25
Sinan a écrit : Très bien, merci gfa pour ton message |
C'est pas parce que c'est de l'événementiel que ton programme n'as pas un début et une fin Il y a toujours un début et une fin
Tu as un événement Load dans les forms... Et quand tu ouvres le premier écran de ton programme, cet événement est forcément lancé... On peut considérer que c'est le début de ton programme. De la même manière, lorsque ton utilisateur ferme la première fenêtre de ton appli (celle où tu as mis le menu bien entendu...), l'événement Close est lancé... On peut donc considérer que c'est la fin de ton programme...
La déclaration de toutes tes variables et fonctions en "public" n'est pas du tout une bonne solution. Par contre, tu peux déclarer ta variable "coBase" en "public". La fonction ouvrant la connexion utilise cette variable mais elle est uniquement visible dans la form qui l'utilise. Si tu choisis d'ouvrir ta DB au début de ton programme et de la fermer à la fin, il n'y a que la variable connexion qui doit être publique...
Voilà, j'espère que cela va t'aider... Ah oui... Regarde peut-être un peu de doc sur la programmation... Tu m'as l'air d'être un peu perdu
A+
Marsh Posté le 04-05-2005 à 18:07:55
oui j'y connais pas grand chose en VB, j'y suis depuis hier
Ca roule merci
Mon module :
Code :
|
Mon form :
Code :
|
Marsh Posté le 04-05-2005 à 11:54:27
Bonjour,
je vais commencer directement par mon code :
Voici ma fonction de connexion à SQL SERVER :
Code de du bouton rechercher :
Si je met le code de la fonction directement dans mon sub, je n'ai aucun soucis, je récupére bien mes variables de la requête.
Mais je cherche à ne pas réecrire le code de connexion à chaque fois que j'ai besoin de faire un requête. Donc j'ai écrit la fonction de connexion, mais le script ne retrouve pas la variable CoBase. Comment puis je faire pour créer cette fonction de connexion qui sera appelée à chaque fois que j'ai besoin de faire une requete ? Faire une fonction "générique" de connexion.
je veux faire un espece d'include de l'ouverture et de la fermeture de connexion.
Quelqu'un a une idée ?
Merci