WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Développement d'une architecture "client - serveur" pour la gestion des coopératives d'épargne et de crédit. cas de la COOPEC Nyalukemba

( Télécharger le fichier original )
par Théophile Theocent Mweze Rwagaza
Institut Supérieur Pédagogique de Bukavu - Licencié en Informatique de Gestion 2013
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

    REPUBLIQUE DEMOCRATIQUE DU CONGO

    ENSEIGNEMENT SUPERIEUR, UNIVERSITAIRE ET RECHERCHE SCIENTIFIQUE

    INSTITUT SUPERIEUR PEDAGOGIQUE

    BP : 854 BUKAVU

    SECTION DES SCIENCES COMMERCIALES, ADMINISTRATIVES ET INFORMATIQUE

    DEPARTEMENT D'INFORMATIQUE DE GESTION

    DEVELOPPEMENT D'UNE ARCHITECTURE « CLIENT- SERVEUR » POUR LA GESTION DES COOPERATIVES D'EPARGNE ET DE CREDIT


    Par : MWEZE RWAGAZA Théophile

    Travail de fin de cycle présenté en vue l'obtention

    du diplôme de licencié en Pédagogie Appliquée

    Option : Informatique de Gestion

    Directeur : TASHO KASONGO Issa

    Chef des travaux

    EPIGRAPHE

    « L'erreur est humaine mais un véritable désastre nécessite un ordinateur. » - Bill Gates
    « Le succès est un mauvais professeur. Il pousse les gens intelligents à croire qu'ils sont infaillibles. » - William Henry

     « Les gagnants seront ceux qui restructurent la manière dont l'information circule dans leur entreprise.  » -Bill Gates

    « Les grandes réalisations sont toujours précédées par de grandes idées » - Steve Jobs

    IN MEMORIAM

    En ta mémoire regrettée grande soeur Espérance KINJA MUHIGIRWA qui nous a quitté pendant qu'il n'était pas encore temps mais le destin était si fort et cela ne t'a pas permis de jouir des fruits de tes études car tu as succombé trop tôt au chemin de la croix des études.

    A vous grand pères, grand mères, oncles, cousins, cousines, neveux, nièces qui nous ont quitté et Dieu n'a pas voulu que nous soyons ensemble en ce moment.

    Que vos âmes reposent en paix.

    DEDICACE

    A nos parents MUHIGIRWA Léonard et M'KARHIBULA Agathe pour le sacrifice consenti à notre égard.

    A mes frères et soeur : Jacques KADESIRWE MUHIGIRWA et sa famille, FURAHA MUHIGIRWA et sa famille, CIKWANINE MUHIGIRWA et sa famille, KAJIBWAMI MUHIGIRWA et sa famille, NABINTU MUHIGIRWA et sa famille, Juvénal MUHIGIRWA, Patrick BYUMANINE MUHIGIRWA, Vital MUHIGIRWA et Aline MUHIGIRWA ;

    A la future mère de nos enfants ;

    A mes tantes et oncles ;

    A mes grands-parents ;

    A mes cousins et cousines ;

    A mes neveux et nièces ;

    A nos biens aimés camarades et compagnons de lutte.

    A tous les nôtres qui nous ont soutenus de près ou de loin dans l'ombre ou dans la lumière au cours de notre parcours universitaire.

    Je dédie ce travail

    Théophile MWEZE RWAGAZA

    REMERCIEMENTS

    La réalisation du présent travail est le résultat non seulement de notre effort personnel mais aussi et surtout le fruit du concours de plusieurs personnalités dont nous voudrions qu'elles trouvent ici l'expression de notre profonde gratitude.

    Tout d'abord, nous remercions le bon Dieu pour le don de la vie ainsi que tout ce qu'il fait pour nous jour au jour.

    Notre gratitude s'adresse tout naturellement au chef des travaux TASHO KASONGO Issa qui, malgré ses multiples occupations, a accepté de nous diriger pour la réalisation du présent travail.

    Notre gratitude s'adresse d'une manière particulière à tous les enseignants du département d'Informatique de Gestion à l'ISP, qui se sont donnés corps et âme pour nous guider jusqu'à l'achèvement de notre parcours d'étudiant.

    Que tout le corps professoral de l'Institut Supérieur Pédagogique de Bukavu (ISP), trouve ici l'expression de notre gratitude pour avoir fait de nous un futur cadre de ce pays.

    Notre gratitude s'adresse ensuite à nos chers parents pour leurs sacrifices, affection parentale, sens de responsabilité ainsi que leurs précieux conseils, qui nous ont fait arriver à ce jour mémorable.

    Que notre chère famille trouve ici l'expression de notre profonde gratitude pour le bon climat d'attente et d'harmonie qui la caractérise, expression d'encouragements que nous avons eu tout au long de nos études.

    Il serait enfin ingrat de clore cette page sans remercier nos amis et familles amies ainsi que tous ceux qui d'une façon ou d'une autre, nous ont soutenu au cours de notre parcours universitaire.

    SIGLES ET ABREVIATIONS

    ASP.NET : Active Server Pages .NET ;

    BD : Base de données;

    CETE  : Centre d'Etudes Techniques de l'Equipement ;

    COOPEC  : Coopérative d'Epargne et de Crédit ;

    DB : Data base;

    DBMS : Data base Management System;

    GRH  : Gestion des Ressources Humaines ;

    IDE : Integrated Development Environment ;

    MCD  : Modèle Conceptuel de Données ;

    MERISE : Méthode d'Etude et des Réalisations Informatiques pour le Système d'Entreprise;

    MFC  : Microsoft Fondation Class ;

    MLD  : Modèle Logique de données ;

    MLDR  : Modèle Logique de Données Relationnelles

    MPD  : Modèle Physique de données ;

    MVC : Model View Controler ;

    NTCI  : Nouvelle Technologie de la Communication et de l'Information ;

    OS  : Operating System;

    PA  : Point d'Accès;

    SGBD : Système de Gestion des bases de données;

    SQL : Structured Query Language

    TDS  : Tabular Data Stream

    T-SQL : Transact - Structured Query Language;

    VB.Net : Visual Basic. Net;

    VPN  : Virtual Private Network

    WCF  : Windows Communication Foundation;

    WFA : Windows Forms Application;

    WPF : Windows Presentation Foundation;

    RESUME

    Le présent travail s'inscrit dans le cadre de l'informatisation des actifs et de l'évaluation de la circulation de l'information au sein de la Coopérative d'Epargne et de Crédit Nyalukemba (COOPEC NYALUKEMBA).

    Il suggère une première idée visant à informatiser les opérations dans cette Coopérative. La seconde idée vise à doter cette dernière d'un système de partage de données en réseau en vue de faciliter la tâche aux agents y oeuvrant et leurs épargner de recourir au mode manuel. Actuellement avec l'évolution de la technologie le mode manuel est considéré comme archaïque, entraînant une mauvaise compilation des données y relatives.

    La Coopérative Nyalukemba, oeuvre en République Démocratique du Congo, précisément au Sud Kivu, ville de Bukavu. Cette dernière oeuvre dans le domaine d'octroi des crédits, d'épargne des fonds des membres et elle se retrouve se retrouve face à plusieurs cas à gérer, notamment : l'adhésion des membres, le dépôt et retrait des fonds, l'octroi des crédits, la reconduction d'un crédit et biens d'autres opérations se réalisant encore manuellement. Pour rendre ceci effective, il nous faut concevoir une base de données pouvant permettre l'automatisation de ces activités faites encore manuellement au sein de cette Coopérative en vue de faciliter la tâche aux utilisateurs.

    Vu cette nécessité, il revient à nous Informaticiens de réfléchir sur l'algorithme et la mise au point d'un modèle informatique répondant à leur besoin, en vue d'apporter une pierre à l'édifice qu'est cette Coopérative dans notre milieu. Ainsi je veux développer l'objet du temps d'observation actif dans les différents services présent au sein de la Coopérative en vue d'en avoir l'expérience surtout pour la situation des membres de cette dernière.

    Mots clés : Informatisation, Gestion, Coopérative, Base de Données, Réseau

    ABSTRACT

    This work is part of the computerization of assets and the evaluation of the flow of information within the Cooperative Savings and Credit Nyalukemba.
    He suggests an initial idea to computerize operations in the Cooperative. The second idea is to equip it with a system of data sharing network to facilitate the work of agents are working and saving to use the manual mode. Currently with the evolution of technology manual mode is considered archaic, leading to poor compilation of related data.

    Cooperative Nyalukemba, work in the Democratic Republic of the Congo, particularly in the South Kivu town of Bukavu. This latest work in the field of granting loans, savings fund members and she finds herself faced with a number of cases to manage, including: membership, the deposit and withdrawal of funds, the grant credit, renewal of credit and many other operations are still performing manually. To make this effective, we need to design a database that can enable the automation of these activities still doing manually in the Cooperative for the convenience of users.

    Given this need, it is up to us Techies reflect on the algorithm and the development of a computer model that meets their needs in order to bring a stone to the edifice that cooperative in our midst. So I want to expand the object of observation time active in the various services present within the cooperative in order to have the experience, especially for the situation of members of the latter.


    Keywords: Computerization Management, Cooperative, Database, Network

    Introduction générale

    La recherche accorde ces dernières années beaucoup d'importance à l'informatisation des entreprises. Ceci pour plusieurs raisons : un nombre croissant de collection mise en réseau soit intranet ou internet distribué au plan régional, national ou international, le développement de cette infrastructure de communication et de partage de données nécessite l'automatisation en vue d'éviter le traitement manuel des données qui s'avère être très couteux et en personnel et en temps de production des rapports. Ceci nous pousse à confirmer qu'actuellement une firme (Entreprise) ne faisant pas usage des outils de la NTCI (Nouvelle Technologie de la Communication et de l'Information) est au fond un corps sans âme.1(*)Ce qui est le cas de notre champ de recherche qui est la Coopérative d'Epargne et de Crédit Nyalukemba qui reste encore non informatisé et dont nous voulons à tout prix informatisé ces services pour que cette dernière bénéficie de ces technologies.

    0.1. Problématique

    La mesure des différents paramètres définissant l'action d'informatiser, de gérer et de suivre exactement la situation des personnes, de leurs fonds et crédits prise en charge dans une Entreprise ou dans un établissement plus particulièrement dans une Coopérative d'Epargne et de Crédit est soumise actuellement aux nouvelles technologies, à ses méthodes et techniques prédéfinies et cela de façon impérative.

    L'informatique étant indispensable dans toute organisation, notamment dans le domaine de la gestion des personnes et leurs biens, les coopératives d'épargne aussi ne sont pas mises à l'écart pour admettre cette technologie et arriver à atteindre les objectifs.

    Etant donné que la COOPEC NYALUKEMBA, une étude de cas pour notre travail, ne possède pas de système informatique, la procédure utilisée pour effectuer l'adhésion des membres, les opérations de dépôt, de retrait, d'octroi, de remboursement de crédit et reconduction d'un crédit reste manuel. Cette méthode administrative est considérée comme archaïque entrainant le mauvais traitement des données y relative et donc un manque de perspicacité dans le rendement attendu.

    On remarque également la difficulté d'établir rapidement et presqu'au même moment à un membre la situation actualisée de son compte, de ses retraits, de son crédit, la date de son adhésion, la date de son premier dépôt ou retrait ou encore son premier crédit reçu, le total de son montant en dépôt, le solde, et tant d'autres situations liées aux mouvement des comptes des membres de la COOPEC.

    Parmi les limites qu'accuse ce moyen manuel utilisé pour la gestion des opérations liées aux membres de la Coopérative NYALUEKEMBA, on note :

    - Le manque à gagner dans la GRH ;

    - La lenteur dans le traitement des actifs financiers et administratifs ;

    - Le rendement non maximisé partant de ses objectifs ;

    - Le moment de stress et de fatigue observé au niveau des agents à la suite d'un travail pertinent à servir un membre après l'autre.

    Ce constat nous amène à nous poser le deux questions suivantes :

    1. Quelles stratégies de suivi et de contrôle que doit adopter ce système pour accorder aux membres et agents de la coopérative un service de qualité, fiable et sécurisé?

    2. Quel système faut-il mettre au point pour centraliser et partager les données liées aux opérations de la Coopérative dans tous ces services ?

    Telles sont les différentes questions que nous nous poserons tout au long du présent travail.

    2. Hypothèse

    Pour ce faire, partant des observations de ce qui se passe au sein de la COOPEC NYALUKEMBA et dans le cadre du présent travail, nos hypothèses méritent d'être formulées de la manière suivante :

    1. A ce sujet, il convient de recourir à la nouvelle stratégie de gestion de données relatives aux Coopératives d'Epargne et de Crédit au moyen de l'informatique, ce qui permettra l'amélioration et le perfectionnement du travail pour une rentabilité optimale.

    2. La mise au point d'un SGBD partagée, conçue spécialement pour la gestion des adhésions, des dépôts ; des retraits, d'octroi, de remboursement des crédits et biens d'autres, serait une solution efficiente et rénovée pour faciliter ces différentes opérations et minimiser la lenteur dans la production de certains rapports liés aux membres de la coopérative et cette base de données servirait à stocker diverses informations dont on se servirait plus tard pour telle ou telle autre situation. Ce partage en réseau de la base de données faciliterait au gérant, aux chargés de crédits et risques, au guichetier et autres agents de la coopérative d'avoir accès en temps réel aux informations des membres, afin d'avoir une main mise sur toutes les activités et d'en faire le calcul directe des soldes entre les différents dépôts et retraits effectués au cours d'une période donnée.

    0.3. Choix et intérêt du sujet

    a. Choix

    Le choix de ce sujet se justifie par notre souci de mettre sur pied un modèle informatique de gestion des opérations au sein de la COOPEC NYALUKEMBA répondant aux normes de l'architecture 2 tiers et il servira pour d'autres Coopératives intéressées par le présent modèle.

    Et notre choix s'explique encore par le fait que le gérant de la COOPEC, nous avait intéressés pour mettre sur pied l'initiative pratique dans le domaine informatique en faveur de l'exercice de leur fonction pour permettre un travail harmonieux au sein de la Coopérative.

    b. Intérêt

    Le présent travail va constituer un outil de référence dans le cadre de l'amélioration des conditions de travail au sein de toute coopérative non encore informatisée et en particulier la COOPEC NYALUKEMBA. Nous nous sommes intéressés à ce dernier étant motivé par l'option choisie à l'ISP qui est l'Informatique de Gestion et donc de réaliser un travail scientifique y correspondant et enfin d'élargir nos connaissances en associant les notions de la gestion à celle de l'Informatique.

    0.4. Etat de la question

    La recherche scientifique n'a jamais était à terme et n'y sera jamais et que donc lorsque un chercheur entreprend la recherche, la probabilité pour que le sujet abordé n'ait jamais été traité par d'autres chercheurs est minime. Raison pour laquelle, il est recommandé aux scientifiques de pouvoir lire et fouiller d'avantage dans différentes bibliothèques pour exploiter et lire la suite des travaux déjà publiés dans son domaine de recherche, enfin d'éviter toute répétition gratuite et inutile dans la science car le plagiat et la polycopie est prohibée.

    A ce point il convient de signaler qu'aucun système informatique de ce genre n'a jamais été développé au sein de la Coopérative NYALUKEMBA. Néanmoins, il existe des travaux de fin d'études universitaires déjà publiés et orientés vers les coopératives d'épargnes, notamment :

    1. LUFUNGULO BISIMWA, Mémoire inédit ISP BUKAVU, 2009-2010 Conception d'un système intégré de gestion d'une coopérative d'épargne et de crédit relatif au domaine d'adhésion, épargne, crédit, retrait et comptabilité, Cas de la COOPEC MOCC BUKAVU. L'auteur a mis l'accent sur la création d'une base de données dans l'environnement Access avec des interfaces conçus en langage Java, ensuite procéder à la mise en réseau de cette dernière.

    2. Pascal Blaise KADIEBUE Kabasele, Mémoire inédit Université Notre Dame de Kasaï, 2008-2009, Conception et la réalisation d'une base de données pour la gestion des micro-crédits à impact visible, cas de la COOPEC DEKOC, l'auteur a mis l'accent sur le développement d'une base de données dans l'environnement Access pour faciliter et simplifier la gestion des acteurs-bénéficiaires impliqués dans le micro crédits.

    Après avoir parcouru ces différents travaux, nous avons dégagé que l'environnement de développement (Access) choisit par les auteurs ne permet pas la gestion efficace. Les technologies utilisées, restent limité pour le partage en réseau en vue de faciliter le système des plusieurs utilisateurs sur un serveur conservant la base de données. Quant à notre travail nous avons opté pour les technologies VB.Net et SQL Server qui nous ont l'implémentation de notre application en intranet ou internet et permettre l'accessibilité en temps réel pour plusieurs utilisateurs.

    0.5. Délimitation du sujet

    a. Dans l'espace

    Notre travail porte sur la Coopérative d'Epargne et de Crédit Nyalukemba, qui est implanté en R.D Congo, province du Sud Kivu, ville de Bukavu, dans la commune d'Ibanda, Quartier NYALUKEMBA, AV. P.E LUMUMBA N° 0168 NGUBA mais les résultats de conception et de réalisation peuvent s'appliquer à d'autres coopératives de la place.

    b. Dans le temps

    Partant du facteur temps, le présent travail est manufacturé en tenant compte de l'intervalle séparant l'année pendant laquelle la COOPEC NYALUKEMBA a été mise au point jusqu'à présent car toute les données en dur qui sont classées seront encodées dans la base de données que nous allons concevoir.

    0.6. Méthodes et techniques

    a. Les méthodes

    D'aucun n'ignore l'apport méthodologique pour un travail scientifique, cela à partir d'une main forte qu'elle ne cesse d'apporter au chercheur, qui en fait usage.

    Ainsi les méthodes suivantes nous ont permis de finaliser ce travail :

    Ø La méthode historique

    Elle nous a servi dans le cadre où elle a permis de donner l'évolution ou une vue générale sur la COOPEC NYALUKEMBA et les applications informatiques dont nous avons fait usage.

    Ø La méthode d'observation

    Elle nous a été utile dans le cadre où elle nous a permis de décider sur le choix du présent sujet partant des difficultés de gestion se présentant au sein de la COOPEC NYALUKEMBA.

    Ø Méthode structuro fonctionnelle

    Grâce à cette méthode, nous essayerons de comprendre la structure fonctionnelle de la COOPEC NYALUKEMBA ainsi que son système de fonctionnement entre les agents et les relations extérieures qu'ils entretiennent.

    Ø La méthode MERISE

    Cette méthode nous a facilité l'analyse, la conception et réalisation d'un système d'information informatisé propre à notre projet de recherche.

    b. Les techniques

    Ø La technique de navigation sur internet

    Cette technique nous sera utile en ce sens qu'elle nous a permet d'accéder à la bibliothèque numérique (encyclopédie en ligne, site web, Forums d'échange et d'entre-aide) qui d'ailleurs, sans elle, nous n'arriverons complètement à rien pour la réalisation de ce présent travail.

    Ø Technique documentaire

    Elle va également attirer notre attention, du fait qu'elle est basée sur des lectures des ouvrages en dur abordant notre sujet de recherche.

    Ø La technique d'interview

    Cette dernière étant basée sur l'entretien entre le chercheur et l'enquêté, pour accéder aux données jugées fiables, nous avons usé de cette technique pour aborder le gérant de la Coopérative en vue d'avoir plus d'information sur la circulation de l'information.

    07. Plan sommaire du travail

    Hormis la partie introductive et la conclusion, ce travail est subdivisé en quatre chapitres, notamment :

    Le premier traitera de la Généralité sur les bases de données et le VB.Net où nous avons parlé des notions de base, de l'Introduction aux bases de données, de quoi veut dire une base de données, des avantages d'une base de données, des caractéristiques d'une base de données, et des étapes de conception d'une base de données.

    Le second traitera sur la Présentation du système d'information existant de la Coopec Nyalukemba où nous avons fait la présentation de la COOPEC NYALUKEMBA, la description des documents utilisés et des logiciels existants au sein de la COOPEC et de la faisabilité du logiciel à mettre en place.

    Le troisième portera sur la Modélisation du système d'une architecture client-serveur pour la gestion des coopératives d'épargne et de crédit: il s'agira dans ce dernier, de l'exploitation des modèles nécessaires de la méthode MERISE susceptibles de nous faciliter la mise sur pied d'un système de gestion complet.

    Et enfin le quatrième et le tout dernier portera sur « La mise en place d'une architecture Client-Serveur pour la gestion des coopératives d'épargne et de crédit ». Dans ce chapitre, il s'agira de la présentation de l'architecture matériel à mettre en place, des utilitaires utilisés, de l'environnement de développement, des configurations nécessaires à effectuer au niveau du serveur des données et des ordinateurs clients pour faire fonctionner l'application en réseau, le Manuel d'utilisation, les Codes sources de la base de données

    0.8. Difficultés rencontrées

    Malgré notre motivation portée au choix de ce sujet, nous nous sommes heurtés à quelques difficultés:

    - La coopérative constituant notre champ de recherche avait été scellée par la banque centrale au cours de la rédaction du présent travail mais heureusement nous étions déjà servis en matière des données nécessaires pour la réalisation de notre travail.

    - La documentation livresque a été difficile. Nous avons été obligés de faire toutes nos recherches sur internet, ce qui nous a couté extrêmement cher du faite que nous devrions surfer à tout moment dans les cybers café de la place par manque d'une connexion fiable à l'ISP BUKAVU.

    - En plus de ce qui suit, la plus part de documentations sur les technologies .NET trouvées étaient en langue anglaise, ce qui nous a demandé de fournir beaucoup d'effort et de temps pour les comprendre et les exploiter dans notre travail.

    Chapitre I : Généralités sur les bases de données et le VB.Net

    « La paresse rend tout difficile, le travail rend tout aisé, celui qui se lève tard, s'agite tout le jour et commence à peine ses affaires quand il est déjà nuit » 2(*)

    I.1. Notions de base

    I.1.1. Introduction

    Les bases de données ont pris aujourd'hui une place essentielle en informatique, plus particulièrement en gestion. Au cours des trente dernières années, des concepts, méthodes et algorithmes ont été développés pour gérer les données sur les mémoires secondaires. Ils constituent aujourd'hui l'essentiel de la discipline « bases de données, (BD) ». Cette discipline est utilisée dans la conception des nombreuses applications. Il existe un grand nombre de Système de Gestion de Bases de Données (SGBD) qui permettent de gérer efficacement de grandes bases de données. De plus, une théorie fondamentale sur les techniques de modélisation de données et les algorithmes de traitement a vu les jours. Les bases de données constituent donc une discipline s'appuyant sur une théorie solide et offrant de nombreux débouchés pratiques3(*).

    I.1.2. Qu'est-ce qu'une base de données

    · Une base de données : Une base de données (son abréviation est BD, en anglais DB, Data Base) est un ensemble d'informations relatives à un sujet, une activité donnée en vue de permettre le stockage et la modification des données de façon structurée avec le moins de redondance possible. Ces données doivent être utilisées par plusieurs utilisateurs différents en même temps si possible. Ainsi, la notion de base de données est généralement couplée à celle de réseau, afin de pouvoir mettre en commun ces informations, d'où le nom de base. On parle généralement de système d'information pour désigner toute la structure regroupant les moyens mis en place pour pouvoir partager des données.4(*)

    · Une base de données informatisée : est un ensemble structuré des données enregistrées sur des supports accessibles par l'ordinateur, représentant des informations du monde réel et pouvant être interrogées et mises à jour par un arsenal d'utilisateurs. La gestion et l'accès à une base de données sont assurés par un ensemble de programmes que constitue le système de gestion de base de données (SGBD).5(*)

    I.1.2. Avantage d'une base de données

    Une base de données offre plusieurs avantages notamment :

    - Accès à l'information plus rapidement et facilement ;

    - Toute l'information se retrouve à un seul emplacement ;

    - Plus besoin d'essayer de regrouper l'information qui provient des plusieurs sources ;

    - La recherche ad hoc facile ;

    - Meilleur suivi de l'information ;

    - Meilleure gestion des données ;

    - Meilleure analyse des données ;

    - Meilleure prise de décision ;

    - Automatisation de certaines tâches répétitives6(*)

    I.1.3. Caractéristiques d'une base de données

    La base de données étant un ensemble structuré de données enregistrées sur des supports accessibles par l'ordinateur pour satisfaire simultanément plusieurs utilisateurs de façon sélective et en un temps opportun, doit avoir un certain nombre de caractéristiques :

    - Données structurées: les informations contenues dans une base de données sont réparties en enregistrements, chaque enregistrement ayant une structure bien définie.

    - Données non redondantes: Une même information ne sera pas répétée plusieurs fois dans la base de données.

    - Données cohérentes: Il ne doit pas être permis d'enregistrer dans une base des informations incohérentes entre elles.

    - Données accessibles : l'accès aux données doit être direct et cela selon de multiples critères

    - Indépendance des programmes et des données: La base de données doit être indépendante des programmes qui y ont accès, on doit pouvoir utiliser un autre programme pour traiter différemment ces données sans avoir à toucher à ces données

    - Sécurité des données stockées: la base de données doit permettre un système de sécurité permettant de gérer les droits d'accès aux informations par les utilisateurs.

    I.1.4. Etapes de conception d'une base de données

    Une des tâches essentielles des développeurs des bases de données est la conception du schéma de base. L'objectif est de structurer le domaine d'application de sorte à le représenter sous forme de types et des tables. La représentation doit être juste pour éviter les erreurs sémantiques, notamment dans les réponses aux requêtes. Elle doit aussi être complète pour permettre le développement des programmes d'application souhaités. Elle doit enfin être évolutive afin de supporter la prise en compte rapide des nouvelles commandes.

    En ce sens, nous pouvons retenir les étapes de conception suivante :

    · La perception du monde réel et capture des besoins : Cette étape consiste à étudier les problèmes des utilisateurs et à comprendre leur besoins. Elle comporte des entretiens, des analyses des flux d'information et des processus métiers.

    · Elaboration du schéma conceptuel : Cette étape est basée sur l'intégration des schémas externes obtenus à l'étape précédente. Chaque composant est un schéma entité-association ou objet. Il résulte d'un modèle de problème représentant une partie de l'application. La difficulté est d'intégrer toutes les parties dans un schéma conceptuel global complet, non redondant et cohérent en optant soit pour la méthode MERISE ou le langage UML.

    · Conception du schéma logique : Cette étape réalise la transaction du schéma conceptuel en structures de données supportées par le système choisi. Avec un SGBD relationnel, il s'agit de passer à des tables. Avec un SGBD objet-relationnel, il est possible de générer des types et des tables.

    · Affinement du schéma logique : une question qui se pose est de savoir si le schéma logique est un « bon » schéma. A titre de première approximation, « un bon schéma » est celui sans oublis ni redondances d'informations.

    · Elaboration du schéma physique : Cette étape est nécessaire pour obtenir des bonnes performances. Elle nécessite la prise en compte des transactions afin de déterminer les patterns d'accès fréquents. A partir de là, il faut choisir des bonnes structures physiques : groupage ou partitionnement des tables, index, etc. C'est là que se jouent pour une bonne part les performances de l'application en respectant l'intégralité référentielle des index dans les différentes tables.7(*)

    La gestion de la base de données se fait grâce à un système appelé SGBD (système de gestion de bases de données) ou en anglais DBMS (Data base Management System). Le SGBD est donc un ensemble de services (applications logicielles) permettant de gérer les bases de données. Il en existe plusieurs, dont voici les plus connus8(*) :

    - Microsoft SQL Server : le SGBD de Microsoft, nous l'avons utilisé dans le présent travail. Notons que ce dernier est payant

    - MySQL : c'est un des SGBD les plus populaires et reste gratuit.

    - Oracle : c'est le SGBD le plus utilisé en entreprise, le plus complet aussi...mais payant.

    - PostgreSQL : ressemble un peu MySQL, avec plus de fonctionnalités mais un peu moins connu.

    De notre côté, nous allons prendre SQL Server de Microsoft, mais sachez que la majorité des requêtes qu'on y utilise, fonctionnent presque de la même manière avec les autres SGBD ci haut cités. Donc le SQL c'est parfaitement un langage des requêtes, mais chaque SGBD a son propre langage SQL : ainsi, SQL Server utilise le langage T-SQL (Transact-SQL) et dans cette optique, nous utiliserons un langage SQL indépendant de tout SGBD.

    I.1.5. VB.Net et le SGBD

    a. Utilisation interactive de VB.Net et SQL Server

    Le SQL Server persiste avec le seul problème, est que l'on ne peut pas lui parler directement, c'est à ce moment là qu'intervient le VB.NET par l'intermédiaire d'ADO.NET et de la chaine de connexion de SQL Client. Le langage Visual basic. NET sert d'intermédiaire entre l'utilisateur et SQL Server. Par exemple, un utilisateur demande à VB.NET de demander à SQL Server de faire ce que nous reprenons sur l'image ci-dessous :

    Explication de la figure :

    1. Le serveur utilise VB.NET

    2. Le code VB.NET demande à SQL Server d'enregistrer une information dans la base de données.

    3. SQL Server va "répondre" à VB.NET en lui disant "OK, c'est bon, je stocke l'information".

    4. VB.NET va alors renvoyer au serveur que tout c'est bien déroulé (donc SQL Server a bien fait son travail).

    b. Brève description des utilitaires à utiliser

    · Microsoft Visual Studio

    La firme Microsoft a créé une suite logicielle nommée « Visual Studio », qui rassemble :

    - Visual Basic (WFA: Windows Forms Application, WPF Application, Console Application, ASP.NET Web et MVC 2 Web Application, Class Library, Silverligth Application, Silverligth Class Library, WCF Service Application),

    - Visual C#,

    - Visual C++ (Win32 Console Application, MFC Application, ATL Project,CLR Application,...) et

    - Visual F#, etc

    Alors, tous nous connaissons que la suite des applications provenant de Microsoft, on peut facilement deviner qu'elle coûte une certaine somme. Heureusement, l'éditeur nous propose généralement une version « express » gratuite (version student) de chaque logiciel de cette suite. Au début de ce présent travail, nous avions commencé par le Visual Studio Express 2010 qui est gratuit. Cet utilitaire a été téléchargé au http://download.microsoft.com/download/e/c/a/eca104b9-610e-435b-8268-447edf8c86e0/vb_web.exe valide le 14 Avril 2012

    Plus tard, nous avons eu à utiliser Microsoft Visual Studio 2010 Professionnel qui est une version commerciale complète avec toutes les fonctionnalités dans le but de réaliser un progiciel professionnel.

    Microsoft a déjà sorti plusieurs versions de SQL Server, la dernière en date est SQL Server 2012 R2. J'ai décidé de prendre ce SGBD car il s'adapte très bien avec les suites Professionnel de Visual Studio. La première version de SQL Server est sortie en 1989 sur les plateformes UNIX et OS/2, mais depuis, Microsoft a préféré mettre SQL Server uniquement sous un système d'exploitation Windows. En 1994, Microsoft a sorti la version 6.0 et 6.5 sur la plateforme Windows NT. Ensuite Microsoft a continué de commercialiser le moteur de base de données sous le nom de Microsoft SQL Server et a publié la version 2008 de Microsoft SQL Server, et enfin la version 2008 R2.

    Ce dernier est aussi en version student que nous avons téléchargé sur le lien suivant http://msdn.microsoft.com/fr-fr/gg699325, mais plus tard, nous avons également opté pour la version complète pour aller plus loin avec les fonctionnalités de notre base de données.

    Chapitre 2 : Description du système d'information existant au sein de la coopérative Nyalukemba

    « Employez bien votre temps si vous voulez mériter le repos et ne perdez pas une heure puisque vous n'êtes pas sûr même d'une minute.9(*) »

    2.1. Présentation

    La Coopérative d'Epargne et de Crédit NYALUKEMBA est une représentation de l'administration provinciale du RESEAU COOCEC KIVU en commune et territoire provinciale. Elle est régie par les dispositions générales des entreprises publiques de l'Etat Congolais ayant la personnalité juridique spéciale agrée par la Banque Centrale du Congo (BCC) sous Gouv.ID.143/n°00097 du 02 Février 2002. La zone d'intervention de la COOPEC s'étend dans les limites administratives de la ville de Bukavu. Elle peut être élargie à d'autres parties de la R.D Congo sur décision de l'Assemblée Générale et après approbation de la Banque Centrale du Congo. Son siège social est établi dans les limites de sa zone d'action qui comprend le quartier NYALUKEMBA. Il peut être transféré en tout autre lieu de la zone d'intervention sur proposition du Conseil d'Administration et après approbation de la Banque Centrale. L'objet social de cette COOPEC est généralement de collecter l'épargner des membres sous toutes ses formes et de consentir des crédits à ses membres.

    2.1.1. Membres : adhésion, catégories, perte de la qualité

    a. Adhésion des membres

    Peut être membre de la COOPEC toute personne physique ou morale capable de contracter ce qui suit :

    - Souscrire et libérer au moins une part sociale

    - Signer une demande d'adhésion, sauf le cas d'un fondateur

    - S'engager à respecter le statut et les règlements de la COOPEC

    - S'acquitter du droit d'adhésion

    La qualité de membre est constatée par l'inscription au registre des membres tenu au siège social de la COOPEC sur instruction du Conseil d'Administration

    b. Catégorie de membres

    La COOPEC compte deux catégories de membres à savoir :

    - Les membres effectifs (dont les fondateurs)

    - Les membres auxiliaires qui sont considérés comme des clients potentiels au sein de la Coopérative.

    c. Perte de la qualité de membre

    Un membre peut perdre sa qualité par :

    - La démission donnée dans les conditions prévues par le règlement d'ordre intérieur

    - L'exclusion prononcée par l'Assemblée générale sur proposition du conseil d'administration selon le cas prévu dans le règlement d'ordre intérieur

    - Le décès ou dissolution (pour une personne morale)

    Tout membre peut démissionner pour autant qu'il ne soit pas emprunteur, débiteur ou endosseur d'un prêt.

    2.1.2. Ressources financières de la COOPEC

    Les ressources financières de la COOPEC provient des :

    - Droit d'adhésion et parts sociales

    - Cotisations et souscriptions des membres

    - Dons, legs et subventions de l'Etat ou d'une autre institution nationale ou internationale

    - Intérêts sur les crédits consentis

    - Recettes provenant de toute activité génératrice de recettes ou de revenus organisés par la COOPEC autres que la collecte de l'épargne ou de l'octroi du crédit mais dont l'importance demeure limitée par rapport à l'ensemble des activités principales et qui n'est pas réputée constituer l'exploitation d'un commerce ou d'un moyen de profit.

    2.2. Fonctionnement des organes

    La COOPEC NYALUKEMBA comprend quatre organes à savoir :

    - Assemblée Générale (A.G)

    - Conseil d'Administration (C.A)

    - Conseil de surveillance (CS)

    - Commission de Crédit (C.C)

    Description des organes :

    2.2.1. Assemblée générale

    L'Assemblée générale est l'instance suprême de la COOPEC. Elle est constituée de l'ensemble des membres réunis à cette fin. Généralement, il est prévu deux sortes d'Assemblée Générale :

    - L'A.G ordinaire qui se tient une fois l'an dans les trois mois qui suivent la clôture de chaque exercice social. Elle est convoquée par le président du C.A sur base d'une invitation écrite envoyée aux membres avec accusé de réception 30 jours avant sa tenue. La date, l'heure et le lieu seront repris sur l'invitation. L'Assemblée ne délibérera que sur les questions inscrites à son ordre du jour.

    - L'A.G extraordinaire qui peut être convoquée sur demande du Conseil d'Administration, du Conseil de Surveillance, du 1/3 des membres de l'Assemblée Générale, le Conseil d'Administration de la COOCEC à laquelle la COOPEC est affiliée ou de la Banque Centrale du Congo.

    Attributions

    Sans préjudice des dispositions de l'article 30 de la loi n°002/2002 du 02 Février 2002 portant dispositions applicables aux Coopératives d'Epargne et de Crédit, l'Assemblée Générale est chargée de :

    - Orienter la politique interne et externe de la COOPEC

    - Prendre connaissance du rapport annuel du Conseil d'Administration et du Conseil de Surveillance ;

    - Nommer les Commissaires aux Comptes ;

    - Donner mandat au Conseil d'Administration d'étudier les possibilités de créer des nouvelles agences ;

    - Déterminer les critères et les modalités d'élection des mesures du C.A et des membres des autres organes ;

    - Décider de l'affiliation ou désaffiliation à une COOCEC ;

    - Prendre toute décision sur la bonne marche de la COOPEC sur proposition du Conseil d'Administration.

    2.2.2 Conseil d'Administration

    Le Conseil d'Administration est composé de cinq Administrateurs minimums. Toutefois, un nombre impair plus élevé, sans être supérieur à 9 administrateurs, peut être prévu. Il se réunit dans les formes prévues par la loi n°002/2002 du 02 février 2002 portant dispositions applicables aux Coopératives d'Epargne et de Crédit. L'exercice de cette fonction est incompatible avec celle de membres du Conseil de Surveillance de la Commission de crédit et de la Gérance.

    Attributions

    Le Conseil d'Administration veille au fonctionnement et à la bonne gestion de la COOPEC, sous réserve de l'avis favorable de la COOCEC à laquelle elle est affiliée. Il a notamment compétence pour :

    - Nommer et révoquer le Gérant

    - Voter le budget de fonctionnement et d'investissement

    - Se prononcer en appel sur décisions de la Commission de Crédit à l'endroit d'un membre

    2.2.3. Conseil de Surveillance

    Le Conseil de Surveillance se compose de trois membres élus par l'Assemblée Générale parmi les membres de la COOPEC. L'exercice de cette fonction est incompatible avec celle de membres du Conseil d'Administration de la Commission de Crédit et de la Gérance.

    Attributions :

    Le Conseil de Surveillance est chargé de surveiller les opérations de la COOPEC. Il a accès à toutes les pièces et peut obtenir tous les renseignements qu'il requiert. Il doit notamment :

    - Veiller au contrôle périodique de la COOPEC par les organes compétents ;

    - Recevoir les plaintes des membres et les soumettre aux organes compétents ;

    - Entreprendre les vérifications ou inspections des comptes, livres et opérations de la COOPEC.

    2.2.4. Commission de crédit

    La Commission de crédit est composée de trois membres élus par l'Assemblée Générale parmi les membres de la COOPEC. Elle se réunit une fois par mois. Le Gérant assure d'office le secrétariat et assiste avec voix consultative aux réunions. La majorité des membres constitue le quorum de la commission.

    Attributions

    La Commission de Crédit a la responsabilité de gérer la distribution et le remboursement du crédit conformément aux politiques et procédures définies en la matière. Les décisions de la Commission sont prises à l'unanimité.

    2.2.5. La Gérance

    - La Gérance est composée du Gérant de la Coopérative, nommé par le Conseil d'Administration ainsi que des agents dépendant de ses services.

    - Le Conseil d'Administration fixe les modalités de l'engagement et du licenciement du Gérant, la nature de son contrat, le montant de sa rémunération ainsi que les autres avantages pouvant lui être accordés ;

    - Le Gérant exerce ses fonctions sous l'autorité du Conseil d'Administration. Par ailleurs, il assiste avec voix consultative aux réunions du Conseil d'Administration ainsi qu'à celles de la Commission de Crédit. Il en assume le secrétariat.

    - Le Gérant est chargé de la gestion courante de la Coopérative. L'étendue de ses pouvoirs est déterminée par le règlement d'ordre intérieur de la COOPEC.

    2.3. Description des documents utilisés

    L'établissement des documents et des rapports varie non seulement d'un pays à un autre, d'une région à une autre, d'un territoire à un autre mais aussi d'une Coopérative d'Epargne et de Crédit à une autre. Les normes d'établissement ici sont déterminées par l'administration générale de la COOPEC NYALUKEMBA.

    2.3.2. Documents utilisés par le (la) caissier (ère)

    Au niveau de la caisse il y a exécution des opérations d'encaissement et de décaissement lorsque demandées et assurer la garde des fonds encaissés. On y assure aussi les services des membres (dépôts et retraits).

    - Le bordereau de dépôt

    A travers ce bordereau, la caissière y passe des écritures conforment au montant qu'un membre doit déposer. Ce dernier est toujours élaborer en plusieurs copies dont une copie originale à remettre au membre qui a déposé et une souche à garder dans les archives de la COOPEC.

    - Le bordereau de retrait

    Pour ce bordereau, la caissière établie ce dernier sur base du montant en solde dans le compte d'un membre donné pour éviter des manquants éventuels. Ce bordereau est aussi élaborer en deux copies pour chacune des parties.

    Les opérations se passant sur les deux documents décrits ci-haut sont donc assurées par la caissière. On y fait aussi référence pour exécuter les opérations d'encaissement et de décaissement lorsque demandée.

    - Carte d'adhésion

    La carte d'adhésion constitue la validation et l'admission d'un membre au sein de la COOPEC. Donc à l'ouverture d'un compte, cette carte constitue un élément indispensable et comme les rubriques l'indiquent, le membre doit se munir des pièces connexes telles que la carte d'identité, parrain (membre reconnu par la COOPEC), ....

    Le verso de la carte d'adhésion reprend les rubriques à compléter pour préciser l'héritier du compte en cas de décès du membre.

    Carnet de membre :

    Le carnet des membres constitue la référence de l'évolution du solde d'un compte entre la COOPEC et un membre donné. Cette première figure constitue la page de garde avec des rubriques qui donnent l'information sur l'identité d'un membre titulaire d'un compte au sein de la COOPEC

    Cette figure indique alors l'évolution proprement dite de l'épargne d'un membre ou c'est repris la date de dépôt ou de retrait, le numéro de la quittance, le montant déposé ou retiré et en fin le solde restant en compte.

    2.4. Logiciels existants au sein de la COOPEC

    Un logiciel est un  programme ou un ensemble de programmes informatiques assurant un traitement particulier de l'information. Le mot logiciel est la traduction de l'anglais software.

    Les applications utilisées dans la plus part des activités des coopératives sont faites en Microsoft Excel. Pour utiliser une application de ce genre on doit l'adapter à la politique de l'entreprise (de la COOPEC) avant toute utilisation. Au sein de la COOPEC NYALUKEMBA, nous avons pu retrouver que dans leur gestion, il y a implication d'un progiciel nommé FINA, conçu sous Microsoft Office Excel. Ce progiciel gère l'ensemble des balances comptables de chaque membre, mais avec un très grand risque car lors de la saisie des éléments de dépôt ou de retrait, l'utilisateur peut accéder facilement aux formules et il suffit seulement de perde ou de modifier une formule pour que la balance soit erronée. En plus un seul utilisateur est autorisé à y travailler par manque d'un système fiable autorisant plusieurs utilisateurs et par manque du réseau également.

    Voici en capture d'écran quelques feuilles de calcul conçu sous Microsoft Office Excel qu'on y utilise :

    - Balance âgée par mois

    Explication : Sur cette balance âgée le comptable ou le caissier y reprend l'ensemble des opérations que tout membre effectue au cours de chaque mois, ici haut en image nous avons la situation pour le mois de Juillet 2012

    - Ventilation des dépôts de la clientèle des membres

    Explication : Au niveau de la ventilation de la clientèle des membres on essaye de spécifier le type de compte par rapport à l'ensemble des épargnes, des dépôts à termes soit on est membre autonome, soit on est membre d'un groupe solidaire ou autres tel que repris sur l'image ci -dessus.

    2.5. Critiques du système informatique existant

    Après analyse des systèmes en place, il nous parait nécessaire de dégager les avantages et les inconvénients liés au système de gestion des activités dans une Coopérative d'Epargne et de Crédit précitées ci haut et proposer des pistes de solution.

    a) Critique des documents de gestion

    Le système actuel, bien que fonctionnant plus ou moins correctement, ne correspond plus aux désirs et aspirations des travailleurs qui, au lieu de s'épanouir dans leur travail, sont par contre acculés par les surcharges de travail et ont actuellement besoin d'assistance.

    D'où les défaillances du système qu'on peut aisément détecter au niveau du système d'information existant sont les suivantes:

    - La procédure utilisée pour effectuer l'adhésion des membres, les opérations de dépôt, de retrait, de virement des fonds, d'octroi, de remboursement de crédit et reconduction d'un crédit se fait encore manuellement sur les documents en durs comme nous les avons illustré plus haut dans ce chapitre et donc cette méthode administrative est considérée comme archaïque entrainant le mauvais traitement des données y relatives.

    - Les ratures se multiplient lorsque par exemple le caissier se met à compléter manuellement la fiche de prêt, la fiche de remboursement et cela entraine une consommation élevée des fournitures de bureaux.

    - Les erreurs se multiplient sur les documents produits et il devient dès lors difficile de les redresser en temps utile.

    C'est pourquoi il est nécessaire d'envisager, pour les Coopératives d'Epargne et de Crédit de la place, d'autres types et modèles de technique de gestion capables de traiter des volumes d'information plus élevées et de réaliser des tâches complexes.

    b) Critique des moyens matériels

    Les moyens matériels utilisés dans certains services de gestion des opérations dans la Coopec NYALUKEMBA sont jusque-là insuffisants. L'outil informatique n'intervient pas pour lui faciliter la sortie de toute information nécessaire à la prise de décision.

    Si la gestion des activités des membres de la COOPEC varie, à la limite, selon le degré d'attachement aux activités de l'institution, sous l'angle des causes fondamentales de faiblesse du système, on note l'utilisation d'un logiciel d'application Microsoft Office Excel (Logiciel FINA) en l'occurrence et autant non approprié que la probabilité du risque d'erreur reste très élevée en particulier lors de l' édition des données. Faute de faire usage d'un logiciel adapté, ce système « primitif » est susceptible de constituer une source de calculs erronés par suite d'inattention et d'aucune politique de sécurité dans le partage de fichiers par exemple en réseau local ou étendu : d'où l'insuffisance avérée de la sécurité des données. En plus ce logiciel n'est pas adapté aux différents services de la COOPEC par manque de réseau.

    c) Critique des ressources humaines

    Bien que le matériel utilisé dans certains services de la COOPEC soit insuffisant, le personnel qui l'utilise fait tout ce qu'il peut pour avoir toutes les informations possibles. Même si le besoin de l'outil informatique s'avère très important, la formation du personnel à la manipulation de cet outil relève d'une grande importance.

    2.6. Proposition des solutions

    Le système de traitement d'informations a évolué en vue de rendre plus efficace et plus rapide le travail humain. Certes, les alternatives existent quant à leur coût, leur temps d'élaboration et leur niveau d'intégration mais leur application effective pose toujours des problèmes.

    Ainsi, dans la recherche des nouvelles solutions nous distinguerons quatre moyens de traitement de l'information :

    · Le traitement manuel : où toutes les fonctions du traitement sont assurées sans recours à des machines. Il s'adapte au traitement des informations de faible volume.

    · Le traitement mécanisé : où toutes les fonctions élémentaires sont assurées par des machines spécialisées. Il permet de traiter des volumes d'information plus élevés que le traitement manuel et est adapté aux tâches élémentaires.

    · Le traitement semi-automatisé : où l'homme est utilisé comme moyen de traitement, l'homme responsable de la conduite générale du travail et une ou plusieurs machines capables d'enchaîner des séquences d'opérations élémentaires. Il s'adapte au traitement des volumes importants d'informations et à la réalisation des tâches complexes.

    · Le traitement automatisé : où des machines évoluées (ordinateurs) sont utilisées. Il s'adapte aux traitements répétitifs portants sur des gros volumes d'informations.

    Vu ce qui précède, le système devrait être capable d'enchaîner toutes les séquences d'opérations en impliquant l'existence d'une mémoire suffisante étant donné que les opérations de calcul des fonds des membres comportent des travaux répétitifs.

    Nous envisageons donc que le traitement par ordinateur sera le plus efficace car étant plus souple et plus rapide dans la résolution des problèmes. Ceci nous permettra d'esquiver les erreurs tout en minimisant le temps de travail.

    Chapitre 3 : La modélisation du système

    « Il est tout à fait possible de coder sans passer par une modélisation, bon nombre de programmeurs professionnels ne savent même pas ce que veut dire modélisation »10(*)

    3.1. Pourquoi une méthode d'analyse ?

    Toute résolution de problème quel qu'il soit, nécessite une, voire plusieurs phases de réflexion plus ou moins longues en fonction de l'ampleur et du type du problème. Lors d'un projet informatique, cette réflexion doit pouvoir être comprise et reprise par toute personne intervenant sur le projet. C'est pourquoi, ont été définies des méthodes d'analyse.

    3.2. La modélisation

    Les méthodes d'étude des systèmes d'information ont pour objectif de décrire ces systèmes à l'aide des modèles, puis réaliser les systèmes informatisés qui en découlent. MERISE est l'une de ces méthodes, la plus rependue d'analyse du système d'information d'une entreprise.

    3.3. Aperçu sur la méthode MERISE11(*)

    MERISE est une méthode de conception, de développement et de réalisation des projets informatiques. L'objectif de cette méthode dans ce travail est d'arriver à concevoir un système d'information. La méthode MERISE est basée sur la séparation des données et des traitements à effectuer en plusieurs modèles.

    Pour rappel, la méthode MERISE date de 1978-1979, et faite suite à une consultation nationale lancée en 1977 par le ministère de l'industrie de la France dans le but de choisir des sociétés de conseil en informatique afin de définir une méthode de conception de systèmes d'information. Les deux principales sociétés ayant mis au point cette méthode sont le CTI (Centre Technique d'Informatique) chargé de gérer le projet, et le CETE (Centre d'Etudes Techniques de l'Equipement) implanté à Aix-en-Provence.

    3.4. Niveaux d'abstraction12(*)

    MERISE distingue trois niveaux de description des systèmes d'information :

    Le niveau conceptuel : « décrit le QUOI faire et avec quelles données ? ».

    Son rôle consiste à définir précisément les finalités de l'entreprise. Il précise l'ensemble des règles de gestion à y appliquer au niveau des concepts, sans tenir compte d'un quelconque matériel informatique devant supporter ces informations, cela par le biais d'un formalisme qui se traduit en terme de modèle conceptuel de données (MCD) avec entité, association, propriété.

    Le niveau organisationnel ou logique: « décrit QUI fait QUOI et OU ? »

    Son rôle est de définir l'organisation qu'il est souhaitable de mettre en place dans l'entreprise pour atteindre les objectifs souhaités. C'est à cette étape que l'on précise les postes de travail, l'emploi des bases de données ou des fichiers, ... Il se traduit en termes de modèle logique de données (MLD), modèle relationnel, système de fichiers ou autre, ...

    Le niveau physique ou opérationnel : « décrit le COMMENT faire ? ».

    Il définit les choix techniques (logiciels et matériels). Il se traduit en termes de modèle physique de données (MPD) avec le choix des index, ...

    3.5. Le modèle conceptuelle de données (MCD)13(*)

    Le modèle conceptuel des données est une représentation statique du système d'information de l'entreprise qui met en évidence sa sémantique. Il a pour but de décrire de façon formelle et structurée les données qui seront utilisées par le système d'information.

    3.6. Détermination des entités14(*)

    L'entité est une représentation d'un élément matériel ou immatériel, ayant une existence propre, avec un rôle dans le système que l'on désire décrie. Elle contient les informations qui la caractérise, ces informations sont appelées propriétés. Ces propriétés sont collectées lors de l'établissement du dictionnaire de données.

    Tableau descriptif des objets /entités

    Le tableau suivant contient les objets et leurs propriétés que nous aurons à manipuler au moment de la conception de notre base de données :

    No

    Entités

    Description

    Propriétés

    01

    T_PRET

    Cette entité contient les informations relatives au prêt d'un crédit

    Id_pret

    Type_credit

    GarantieCredit

    AutreGarantie

    Montant_Pret

    But

    TauxInteret

    Interet

    TotalRembour

    Date_pret

    02

    MEMBRE

    Elle reprend toutes les informations sur le membre.

    NumFolio

    Nom

    Postnom

    Sexe

    Etatcivil

    Lieunais

    Datenaissance

    NumcarteId

    Profession

    Tel_Bureau

    Tel_mobile

    Commune

    Quartier

    DateAdhesion

    Lieu_Adhesion

    Photo

    Montant_solde

    Frais_ouverture

    03

    DEPOT

    Reprend les informations ayant de rapport avec le dépôt des membres.

    Id_depot

    M1

    M5

    M10

    M20

    M50

    M100

    Montant_depot

    Depose_par

    Ancien_solde

    Nouvo_solde

    Guichetier

    04

    RETRAIT

    Reprend les informations ayant de rapport avec les opérations de retrait.

    Id_retrait

    M11

    M55

    M1010

    M2020

    M5050

    M100100

    Montant_retire

    Retire_par

    Ancienn_solde

    Nouveau_solde

    Guichitier

    05

    DETAILREMBOURSEMENT

    Reprend les détails sur le remboursement

    Id_remboursement

    Type_remb

    Remboursement

    Total_Remboursement

    06

    T_LOGIN

    Reprend les informations ayant le rapport avec les utilisateurs du système

    Id_user

    Identifiant

    Pwd

    Privilege

    3.7. Détermination des propriétés15(*)

    La propriété est une information élémentaire, c'est-à-dire non déductible d'autres informations qui présentent un intérêt pour le domaine étudié. Le nom d'une propriété doit être le plus explicite possible : à sa seule lecture on doit donc pouvoir se faire une idée de ce que représente la propriété

    Tableau descriptif des propriétés

    NO

    Propriétés

    Significations

    01

    Id_pret

    Numéro d'identification d'un prêt

    02

    Type_credit

    Type de crédit octroyé au membre

    03

    GarantieCredit

    La garantie pour un crédit

    04

    AutreGarantie

    Autre garantie pouvant couvrir un crédit

    05

    Montant_pret

    Montant à prêter au membre

    06

    But

    Le but de demander un crédit ou un prêt

    07

    TauxInteret

    Le taux d'intérêt pour le crédit reçu

    08

    Date_pret

    La date d'octroi du crédit

    09

    Interet

    L'intérêt de l'institution pour le crédit octroyé

    10

    TotalRembour

    Le total à rembourser pour le crédit reçu

    12

    NumFolio

    Le numéro du compte d'un membre adhérer

    13

    Nom

    Le nom du membre

    14

    Postnom

    Le post nom du membre

    15

    Sexe

    Le genre ou sexe du membre

    16

    Etacivil

    L'Etat civil du membre

    17

    Lieunais

    Le lieu de naissance du membre

    18

    Datenaissance

    La date de naissance du membre

    19

    NumcarteId

    Le numéro de la carte d'identification ou du passe port

    20

    Profession

    La profession du membre

    21

    Tel_bureau

    Le numéro de téléphone de service du membre

    22

    Tel_mobile

    Le numéro privé du membre

    23

    Commune

    La commune du membre

    24

    Quartier

    L'adresse du membre ou le nom de son quartier

    25

    DateAdhesion

    La date d'adhésion du membre

    26

    Lieu_Adhesion

    Le lieu d'adhésion du membre

    27

    Photo

    La photo du membre

    28

    Montant_solde

    Le montant à déposer le jour de l'adhésion

    29

    Frais_ouverture

    Le frais d'ouverture

    30

    Id_retrait

    Le numéro d'identification du retrait

    31

    Dateretrait

    La date de l'opération de retrait

    32

    M11

    Le nombre total des coupures de 1$ retiré

    33

    M55

    Le nombre total des coupures de 5$ retiré

    34

    M1010

    Le nombre total des coupures de 10$ retiré

    35

    M2020

    Le nombre total des coupures de 20$ retiré

    36

    M5050

    Le nombre total des coupures de 50$ retiré

    37

    M100100

    Le nombre total des coupures de 100$ retiré

    38

    Montant_retire

    Le montant total des coupures retirées

    30

    Retire_par

    L'identité de la personne qui a retiré l'argent

    40

    Ancienn_solde

    Le solde en compte avant le retrait

    41

    Nouveau_solde

    Le solde en compte après retrait

    42

    guichitier

    Le nom du guichetier au poste de retrait

    43

    Id_depot

    L'identifiant d'un dépôt

    44

    Datedepot

    La date de dépôt

    45

    M1

    Le nombre total des coupures de 1$ déposé

    46

    M5

    Le nombre total des coupures de 5$ déposé

    47

    M10

    Le nombre total des coupures de 10$ déposé

    48

    M20

    Le nombre total des coupures de 20$ déposé

    49

    M50

    Le nombre total des coupures de 50$ déposé

    50

    M100

    Le nombre total des coupures de 100$ déposé

    51

    Montant_depot

    Le montant total des coupures déposé par un membre

    52

    Depose_par

    Le nom de la personne qui a déposé

    53

    Ancien_solde

    Le solde en compte avant dépôt

    54

    Nouvo_solde

    Le solde en compte après dépôt

    55

    Guichetierr

    Le nom du guichetier au poste de dépôt

    56

    Id_remboursement

    Identifiant d'un remboursement

    57

    Date_remboursement

    La date de remboursement

    58

    Type_remb

    Le type de remboursement

    59

    Remboursement

    Le montant remboursé

    60

    Total_remboursement

    Le total de remboursement d'un crédit

    61

    Id_user

    Identifiant d'un utilisateur du système

    62

    Identifiant

    Pseudonyme ou nom de l'utilisateur

    63

    Pwd

    Le mot de passe de l'utilisateur pour accéder au système

    64

    Privilege

    Privilège de l'utilisateur pour effectuer les opérations dans le système

    3.8. Détermination des relations

    Une relation (appelée aussi parfois association) représente les liens sémantiques qui peuvent exister entre plusieurs entités. Une relation peut ne pas avoir des informations. Des associations suivantes ont été utilisées dans le cadre de ce travail :

    Relations

    Descriptions

    Entités reliées

    01

    Etaler

    Cette relation est celle qui existe entre le prêt et Detailremboursement. Elle signifie qu'un prêt peut être étalé en une ou plusieurs échéances.

    T_PrêtetT_Detailremboursement

    02

    Solliciter

    C'est la relation qui lie un membreau prêt.Un membre peut solliciter un ou plusieurs prêts.

    MembreetT_Prêt

    03

    Retirer

    Elle décrit la relation qui existe entre un membre et son retrait de fond. Un membre effectue un retrait de fond.

    MembreetT_Retrait

    03

    Deposer

    Elle décrit la relation qui existe entre un membre et son retrait de fond. Un membre effectue un dépôt de fond.

    MembreetDepot

    04

    Effectuer

    Cette relation est celle qui existe entre les opérations qu'un utilisateur peut effectuer dans le système lorsqu'il se connecte. Elle signifie qu'un utilisateur peut effectuer une ou plusieurs opérations dans le système, notamment l'adhésion des membres, le dépôt de fonds, le retrait de fonds, l'octroi d'un crédit ou le remboursement d'un crédit

    T_login, Membre, Depot, Retrait,T_pret, T_DetailRemboursement

    3.9. Le dictionnaire des données16(*)

    Le dictionnaire des données est un document qui permet de recenser, de classer et de trier toutes les informations (les données) collectées  lors des entretiens ou de  l'étude des  documents. Le dictionnaire peut être plus ou moins élaboré selon le niveau de granularité souhaité.

    NOM

    ID

    TYPE

    TAILLE

    UTILISE

    Id_pret

    Id_pret

    INT

    0

    true

    NumFolio

    NumFolio

    INT

    0

    false

    Iduser

    Iduser

    INT

    0

    false

    Type_credit

    Type_credit

    VARCHAR

    35

    true

    GarantieCredit

    GarantieCredit

    VARCHAR

    35

    true

    AutreGarantie

    AutreGarantie

    VARCHAR

    35

    true

    Montant_Pret

    Montant_Pret

    NUMERIC

    15

    true

    But

    But

    VARCHAR

    80

    true

    TauxInteret

    TauxInteret

    NUMERIC

    10

    true

    Date_pret

    Date_pret

    DATE TIME

    0

    true

    Interet

    Interet

    NUMERIC

    10

    true

    TotalRembour

    TotalRembour

    NUMERIC

    10

    true

    Id_remboursement

    Id_remboursement

    INT

    0

    true

    Id_pret

    Id_pret

    NUMERIC

    0

    false

    Iduser

    Iduser

    INT

    0

    false

    Date_remboursement

    Date_remboursement

    DATE TIME

    0

    true

    Type_remb

    Type_remb

    VARCHAR

    35

    true

    Remboursement

    Remboursement

    VARCHAR

    35

    true

    Total_Remboursement

    Total_Remboursement

    NUMERIC

    10

    true

    NumFolio

    NumFolio

    INT

    0

    true

    Iduser

    Iduser

    INT

    0

    false

    Nom

    Nom

    VARCHAR

    35

    true

    Postnom

    Postnom

    VARCHAR

    35

    true

    Sexe

    Sexe

    VARCHAR

    1

    true

    Etatcivil

    Etatcivil

    VARCHAR

    15

    true

    Lieunais

    Lieunais

    VARCHAR

    35

    true

    datenaissance

    datenaissance

    DATE TIME

    0

    true

    NumcarteId

    NumcarteId

    VARCHAR

    0

    true

    profession

    profession

    VARCHAR

    35

    true

    Tel_Bureau

    Tel_Bureau

    VARCHAR

    15

    true

    Tel_mobile

    Tel_mobile

    VARCHAR

    15

    true

    commune

    commune

    VARCHAR

    35

    true

    Quartier

    Quartier

    VARCHAR

    35

    true

    DateAdhesion

    DateAdhesion

    DATE TIME

    0

    true

    Lieu_Adhesion

    Lieu_Adhesion

    VARCHAR

    20

    true

    Photo

    Photo

    VARCHAR

    100

    true

    Montant_solde

    Montant_solde

    NUMERIC

    10

    true

    Frais_ouverture

    Frais_ouverture

    NUMERIC

    10

    true

    Id_depot

    Id_depot

    INT

    0

    true

    NumFolio

    NumFolio

    INT

    0

    false

    Iduser

    Iduser

    INT

    0

    false

    Datedepot

    Datedepot

    DATE TIME

    0

    true

    M1

    M1

    NUMERIC

    10

    true

    M5

    M5

    NUMERIC

    10

    true

    M10

    M10

    NUMERIC

    10

    true

    M20

    M20

    NUMERIC

    10

    true

    M50

    M50

    NUMERIC

    10

    true

    M100

    M100

    NUMERIC

    10

    true

    Montant_depot

    Montant_depot

    NUMERIC

    10

    true

    Depose_par

    Depose_par

    VARCHAR

    30

    true

    Ancien_solde

    Ancien_solde

    NUMERIC

    10

    true

    Nouvo_solde

    Nouvo_solde

    NUMERIC

    10

    true

    Guichetier

    Guichetier

    VARCHAR

    30

    true

    Id_retrait

    Id_retrait

    AUTO_INCREMENT

    0

    true

    NumFolio

    NumFolio

    INT

    0

    false

    Iduser

    Iduser

    INT

    0

    false

    Dateretrait

    Dateretrait

    DATE

    0

    true

    M11

    M11

    NUMERIC

    10

    true

    M55

    M55

    NUMERIC

    10

    true

    M1010

    M1010

    NUMERIC

    10

    true

    M2020

    M2020

    NUMERIC

    10

    true

    M5050

    M5050

    NUMERIC

    10

    true

    M100100

    M100100

    NUMERIC

    10

    true

    Montant_retire

    Montant_retire

    NUMERIC

    10

    true

    Retire_par

    Retire_par

    NUMERIC

    25

    true

    Ancienn_solde

    Ancienn_solde

    NUMERIC

    10

    true

    Nouveau_solde

    Nouveau_solde

    NUMERIC

    10

    true

    Guichetier

    Guichetier

    NUMERIC

    25

    true

    Date_retarit

    Date_retrait

    DATE TIME

    0

    true

    Iduser

    Iduser

    INT

    0

    true

    Identifiant

    Identifiant

    VARCHAR

    10

    true

    Pwd

    Pwd

    VARCHAR

    10

    true

    Privilege

    Privilege

    VARCHAR

    10

    true

    3.10. Modèle Conceptuel de données (MCD)

    Après avoir recueilli toutes les propriétés du système d'information de notre milieu d'étude, les entités ainsi que leurs associations, nous aboutissons au MCD suivant : 

    Modèle Conceptuel de données d'un système d'information de gestion des coopératives d'epargne et de crédit

    Règles de gestion

    Une règle de gestion est un élément de description globale du fonctionnement de l'organisation. Toute activité de l'entreprise peut faire l'objet d'une règle de gestion. Elle peut porter sur les données manipulées par l'organisation ou sur les traitements exécutés au sein de celle-ci.17(*)

    1. Un prêt peut être étalé en une ou plusieurs échéances ;

    2. Le détail de remboursement ne concerne qu'un et un seul prêt ;

    3. Un membre peut solliciter zéro ou plusieurs prêts ;

    4. Le prêt ne concerne qu'un et un seul membre ;

    5. Un membre peut rembourser son prêt en un ou plusieurs échéances ;

    6. Le remboursement ne concerne qu'un et un seul membre ;

    7. Un membre peut effectuer un ou plusieurs dépôts ;

    8. Le dépôt ne concerne qu'un et un seul membre ;

    9. Un membre peut effectuer un ou plusieurs retraits ;

    10. Le retrait ne concerne qu'un et un seul membre ;

    11. Un utilisateur peut effectuer une ou plusieurs opérations dans le système selon son privilège.

    12. Une opération peut concerner un et un seul utilisateur

    3.11. Le modèle logique des données relationnel (MLDR)18(*)

    Le modèle Logique des Données Relationnel (MLDR) est la suite normale du processus Merise. Son but est de nous rapprocher au plus près du modèle physique. Pour cela, nous partons du Modèle Conceptuel des Données et nous lui enlevons les relations, mais pas n'importe comment, il faut en effet respecter certaines règles :

    a) Cas (0, n), (1,1) ou (1, n), (0,1)

    On commence par supprimer les associations. Cela se réalise de façon tout à fait mécanique. L'entité ayant la cardinalité de type 1,1 ou 0,1 absorbe l'identifiant de l'entité la plus forte (0, n ou 1, n). Cet identifiant est alors appelé la clé étrangère

    b) Cas (0, n), (0, n) ou (1, n), (1, 1)

    Dans le cas où la cardinalité maximale est n de chaque côté de la relation, celle-ci se transforme en entité et absorbe les identifiants de chaque entité reliée. Les identifiants absorbés forment la nouvelle clé de l'entité. Cette nouvelle clé est donc formée par la concaténation des clés étrangères des entités reliées.

    # Modèle créé le : Sun Sep 08 09:21:09 CEST 2013


    Membre (NumFolio, Nom, Postnom, sexe, Etatcivil, Lieunais, datenaissance, NumcarteId, profession, Tel_Bureau, Tel_mobile, commune, Quartier, DateAdhesion, Lieu_Adhesion, photo, montant_solde, Frais_ouverture, #Iduser)
    T_DetailRemboursement (Id_remboursement, Type_remb, Remboursement, Total_Remboursement, #Iduser)
    T_pret (id_pret, Type_credit, GarantieCredit, AutreGarantie, Montant_Pret, But, TauxInteret, Interet, TotalRembour, Date_pret, #Iduser)
    Depot (Id_depot, M1, M5, M10, M20, M50, M100, Montant_depot, Depose_par, Ancien_solde, Nouvo_solde, Guichetier, #Iduser)
    Retrait (Id_retrait, M11, M55, M1010, M2020, M5050, M100100, Montant_retire, Retire_par, Ancienn_solde, Nouveau_solde, Guichitier, #Iduser)
    T_login (Iduser, Identifiant, Pwd, Privilege)
    Etaler (id_pret, Id_remboursement, Date_remboursement)
    Solliciter (NumFolio, id_pret, Date_sollicite)
    Retirer (NumFolio, Id_retrait, dateretrait)
    Deposer (NumFolio, Id_depot, Datedepot)

    3.12. Le modèle physique de données19(*)

    Construire le Modèle Physique des Données consiste à transformer le Modèle Logique des Données en une suite de relations. Cette étape finalise le processus de traitement des données. L'implémentation de la base de données peut alors être réalisée de façon optimale.

    Modèle Physique de données d'un système d'information de gestion des coopératives d'epargne et de crédit

    3.13. Transcription SQL du Modèle Physique des Données généré par l'utilitaire AnalyseSI

    # script créé le : Sat Sep 07 19:11:15 CEST 2013 - syntaxe MySQL ;

    # use GEST_COOPEC.SQL ;

    DROP TABLE IF EXISTS Membre ;
    CREATETABLEMembre(NumFolioNUMERICNOTNULL,
    Nom VARCHAR(35),
    PostnomVARCHAR(35),
    sexeVARCHAR(1),
    EtatcivilVARCHAR(15),
    LieunaisVARCHAR(35),
    datenaissanceDATETIME,
    NumcarteIdVARCHAR,
    profession VARCHAR(35),
    Tel_BureauVARCHAR(15),
    Tel_mobileVARCHAR(15),
    commune VARCHAR(35),
    Quartier VARCHAR(35),
    DateAdhesionDATETIME,
    Lieu_AdhesionVARCHAR(20),
    photo TEXT,
    montant_soldeNUMERIC(10),
    Frais_ouvertureNUMERIC(10),
    PRIMARYKEY(NumFolio)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS T_DetailRemboursement ;
    CREATETABLET_DetailRemboursement(Id_remboursementINTNOTNULL,
    Type_rembVARCHAR(35),
    RemboursementVARCHAR(35),
    Total_RemboursementNUMERIC(10),
    PRIMARYKEY(Id_remboursement)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS T_pret ;
    CREATETABLET_pret(id_pretINT(10)NOTNULL,
    Type_creditVARCHAR(35),
    GarantieCreditVARCHAR(35),
    AutreGarantieVARCHAR(35),
    Montant_PretNUMERIC(15),
    But VARCHAR(80),
    TauxInteretNUMERIC(10),
    InteretNUMERIC(10),
    TotalRembourNUMERIC(10),
    Date_pretDATETIME,
    PRIMARYKEY(id_pret)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Depot ;
    CREATETABLE Depot (Id_depotINTNOTNULL,
    Num_bordNUMERIC,
    M1 NUMERIC(10),
    M5 NUMERIC(10),
    M10 NUMERIC(10),
    M20 NUMERIC(10),
    M50 NUMERIC(10),
    M100 NUMERIC(10),
    Montant_depotNUMERIC(10),
    Depose_parVARCHAR(30),
    Ancien_soldeNUMERIC(10),
    Nouvo_soldeNUMERIC(10),
    GuichetierVARCHAR(30),
    PRIMARYKEY(Id_depot)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Retrait ;
    CREATETABLERetrait(Id_retraitINTNOTNULL,
    Num_bordereauNUMERIC(12),
    M11 NUMERIC(10),
    M55 NUMERIC(10),
    M1010 NUMERIC(10),
    M2020 NUMERIC(10),
    M5050 NUMERIC(10),
    M100100 NUMERIC(10),
    Montant_retireNUMERIC(10),
    Retire_parNUMERIC(25),
    Ancienn_soldeNUMERIC(10),
    Nouveau_soldeNUMERIC(10),
    GuichitierNUMERIC(25),
    PRIMARYKEY(Id_retrait)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS T_login ;
    CREATETABLET_login(IduserINTNOTNULL,
    IdentifiantVARCHAR(10),
    PwdVARCHAR(10),
    Privilege VARCHAR(10),
    NumFolioNUMERICNOTNULL,
    Id_retraitINTNOTNULL,
    Id_remboursementINTNOTNULL,
    Id_depotINTNOTNULL,
    id_pretINT(10)NOTNULL,
    PRIMARYKEY(Iduser)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Etaler ;
    CREATETABLEEtaler(id_pretINT(10)NOTNULL,
    Id_remboursementINTNOTNULL,
    Date_remboursementDATETIME,
    PRIMARYKEY(id_pret,
    Id_remboursement)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Solliciter ;
    CREATETABLESolliciter(NumFolioNUMERICNOTNULL,
    id_pretINT(10)NOTNULL,
    Date_solliciteDATETIME,
    PRIMARYKEY(NumFolio,
    id_pret)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Retirer ;
    CREATETABLERetirer(NumFolioNUMERICNOTNULL,
    Id_retraitINTNOTNULL,
    dateretraitDATETIME,
    PRIMARYKEY(NumFolio,
    Id_retrait)) ENGINE=InnoDB;

    DROP TABLE IF EXISTS Deposer ;
    CREATETABLE Deposer (NumFolioNUMERICNOTNULL,
    Id_depotINTNOTNULL,
    DatedepotDATETIME,
    PRIMARYKEY(NumFolio,
    Id_depot)) ENGINE=InnoDB;

    ALTERTABLET_loginADDCONSTRAINTFK_T_login_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
    ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_retraitFOREIGNKEY(Id_retrait)REFERENCESRetrait(Id_retrait);
    ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_remboursementFOREIGNKEY(Id_remboursement)REFERENCEST_DetailRemboursement(Id_remboursement);
    ALTERTABLET_loginADDCONSTRAINTFK_T_login_Id_depotFOREIGNKEY(Id_depot)REFERENCES Depot (Id_depot);
    ALTERTABLET_loginADDCONSTRAINTFK_T_login_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
    ALTERTABLEEtalerADDCONSTRAINTFK_Etaler_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
    ALTERTABLEEtalerADDCONSTRAINTFK_Etaler_Id_remboursementFOREIGNKEY(Id_remboursement)REFERENCEST_DetailRemboursement(Id_remboursement);
    ALTERTABLESolliciterADDCONSTRAINTFK_Solliciter_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
    ALTERTABLESolliciterADDCONSTRAINTFK_Solliciter_id_pretFOREIGNKEY(id_pret)REFERENCEST_pret(id_pret);
    ALTERTABLERetirerADDCONSTRAINTFK_Retirer_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
    ALTERTABLERetirerADDCONSTRAINTFK_Retirer_Id_retraitFOREIGNKEY(Id_retrait)REFERENCESRetrait(Id_retrait);
    ALTERTABLE Deposer ADDCONSTRAINTFK_Deposer_NumFolioFOREIGNKEY(NumFolio)REFERENCESMembre(NumFolio);
    ALTERTABLE Deposer ADDCONSTRAINTFK_Deposer_Id_depotFOREIGNKEY(Id_depot)REFERENCES Depot (Id_depot);

    3.14. Le diagramme relationnel généré par les contraintes de Microsoft SQL Server

    Diagramme relationnel d'un système d'information de gestion des coopératives d'epargne et de crédit

    3.15. Le diagramme des requêtes de synthèse construit à partir de Microsoft visual Studio 2010 Professionnel

    Dataset relationnel d'un système d'information de gestion des coopératives d'epargne et de crédit

    3.16. Représentation des accès en réseau.

    Notre architecture étant multi utilisateur, nous allons présenter ici les accès dans l'application suivant les privilèges pour le mode écriture et lecture des données de chaque utilisateur. L'architecture comporte en soit les utilisateurs suivants: un administrateur de la base de données, un gérant de la coopérative, les guichetiers au dépôt et les guichetiers au retrait

    · Illustration des accès de l'administrateur système

    Dans le présent système d'information l'administrateur a le droit d'accès à toutes les données et fonctionnalités pour assiter les utilisateurs et faire la maintence coorective de l'application en cas de neccessité.

    Cette figure illustre les activités de l'administrateur du système d'information selon les activités qu'il doit effectuer au niveau de la base de données. Lorsqu'il se connecte il peut parcourir l'ensemble de l'application et verifier si touts les postes clients accédent à la base de données distante.

    · Illustration des accès du Gérant

    Cette figure illustre les droits d'accès du gérant selon son privilège, il a droit de lire et d'écrire dans la table adhésion des membres, il peut également lire et valider les différents Dépôts-Retraits et peut lire et écrire dans la table de démande de prêt et dans la table de remboursement. Ici il n'a pas droit d'accéder au formulaire de gestion des utilisateurs du système.

    · Illustration des accès des guichetiers au dépôt

    Cette figure illustre le droit d'accès aux données par les différents guichetiers au Dépôt. Ici le guichetier Dépôt peut lire dans la table Membre pour afficher les informations de base d'un membre qui vient faire l'opération de dépôt et il peut lire et écrire dans la table Dépôt. En fin après l'opération de dépôt, il peut faire la mise à jour du solde en compte du memebre concenré. Le reste des opérations restent desactivées pour lui.

    · Illustration des accès des guichetiers au retrait

    Cette figure illustre les accès des différents guichetiers au retrait. Ici le guichetier Retrait peut lire dans la table Membre pour afficher les informations de base d'un membre qui vient faire l'opération de retrait et il peut lire et écrire dans la table Retrait. En fin après l'opération de Retrait, il peut faire la mise à jour du solde en compte du memebre dont l'opération de retrait concerne. Le reste des opérations restent désactivées pour ce dernier.

    Chapitre 4: Mise en place de l'architecture Client- Serveur pour la gestion d'une coopérative d'épargne et de crédit

    « Un développeur digne de son nom, est une personne capable de réfléchir, de conceptualiser et de comprendre les codes sources avant de les modifier20(*) »

    Dans le chapitre précédent, nous venons de mettre sur pied un modèle approprié aux besoins de l'application à réaliser. Ce qui suit c'est maintenant la réalisation et l'implémentation d'un produit fini pouvant être exploité par les utilisateurs à des fins spécifiques. Dans cette partie, nous allons présenter l'architecture matérielle à mettre en place pour l'utilisation de l'application, de l'environnement de développement, des utilitaires utilisés dans la conception, des configurations nécessaires à effectuer au niveau du serveur des données et des ordinateurs clients pour faire fonctionner l'application en réseau, le Manuel d'utilisation, les Codes sources de la base de données.

    4.1. L'architecture matérielle

    En terme matériel, l'institution qui pourra utiliser la présente application disposera des équipements suivants :

    Nbre

    Type matériel

    Caractéristiques

    08

    PC Desktop

    Pentium R, 80 GB, RAM : 0,99 GB, CPU : 2,99GHz

    04

    Lap Top

    160 GB, RAM : 2GB, CPU : 2,19GHz

    02

    Imprimante

    HP Color Laser CP1515n / Avec carte réseau

    01

    Switch

    D-Link 16 ports

    01

    Routeur

    Linksys

    04

    Webcam externe

    Compatible avec l'OS

    Après avoir décrit les matériels nécessaires à mettre en place, nous allons directement passé à la schématisation du réseau local pour faire communiquer d'abord tous ces équipements informatiques. Le schéma (topologie) réseau pour lequel nous allons opter est classé dans la topologie en étoile, toutes les machines seront branchées à une machine centrales (Switch), qui sait envoyer les informations à une machine en particulier (routeur, passerelle). Donc ceci nous fait penser à des machines reliées en paire torsadée à un Switch.

    4.2. Configuration du réseau local pour le partage de l'application

    Pour faire fonctionner l'application conçue, il est impérativement obligatoire de passé par configurer un réseau, dans le but de pouvoir faire communiquer les équipements qui utiliseront notre application.

    Choix de la topologie réseau

    En étoilé toutes les communications passent par le point central. On lui envoie l'information avec le nom du destinateur, et le point central aiguille l'information vers la bonne machine (adressage par IP). C'est comme le centre de tri de la Poste (sauf que c'est plus rapide).

    En étoile, on peut brancher une infinité des machines à condition que vous ayez un Switch qui va résister ; ici pour notre cas nous avons un Switch à 08 Ports et il répond à notre besoin. Mais déployer un réseau avec une infinité des machines, dépendra de la capacité de notre point central ou point d'accès (PA) à traiter un grand nombre de machines. Donc aussi vous comprendrez que le facteur limitant peut être les caractéristiques du Serveur de données car c'est encore en intranet.

    En ce sens si nous avons un serveur très puissant pour l'envoi et la réception des réponses aux requêtes des utilisateurs, nous comprenons qu'aujourd'hui on peut faire un réseau de taille illimitée, mais dans ce cas il faut relier plusieurs points centraux entre eux. Ainsi, ils se transmettent l'information jusqu'à l'acheminer au destinataire.

    Pour ceci nous recommander fortement aux entreprises usant du réseau informatique d'utiliser la topologie en étoile car cette dernière semble assez clair du fait qu'elle possède des caractéristiques permettent d'étendre son réseau aussi bien en taille qu'en nombre de machines. Et cette topologie tombe bien car les réseaux en bus ou anneau sont en voie de disparition aujourd'hui.21(*)

    Pour ce faire voici en image le schéma de notre réseau pour bien partager l'application et avoir accès aux données en temps réel :

    Schéma réseau VPN d'un système d'information de gestion des coopératives d'epargne et de crédit

    Explication supplémentaire du schéma

    Ce schéma reprend, l'ensemble des équipements interconnecté entre eux. Dans le tableau plus haut, nous avons indiqué les matériels dont il faut disposer pour faire fonctionner l'application et sur ce schéma, nous illustrons les dits matériels.

    Pour plus des précisions, nous avons un nombre total de huit desktops qui serviront aux différents guichets (Dépôts- Retraits), un desktop servira comme serveur de base de données, sur lequel nous installerons impérativement Microsoft SQL Server et permettre aux sept postes clients, disposant des interfaces utilisateurs d'y envoyer des requêtes en temps réel. Quatre lap tops répartis comme suit : un pour le gérant, un autre pour l'administrateur de base de données, un autre pour le chargé de crédit et un autre pour le service de comptabilité, eux aussi considérés comme des postes clients. En plus nous avons deux imprimantes réseaux, qui permettront l'impression sur plusieurs postes clients dans le réseau. En fin le Switch, nous permet de communiquer entre les différents équipements et le routeur pour les postes clients sans fil.

    4.3. Environnement de développement de l'application

    Pour réaliser notre application, nous avons utilisé les technologies du langage de programmation Visual Basic.Net, qui est un langage dédié à la mise en place de desktop application pouvant tourner en réseau et permettre l'accès aux données en temps réel. Ce langage a été manipulé dans l'environnement de développement Microsoft Visual Studio Professionnel 2010, un IDE largement compatible avec les technologies .NET

    Ici, nous tenons à signaler que le .NET nous a servi à réaliser les interfaces utilisateurs en partie frontale (front end) et pour tester et répondre aux requêtes des utilisateurs, nous avons utilisé le langage SQL en back end (partie anale), qui est un langage orienté base de données compatible avec les technologies .NET pour les applications réseaux.

    4.4. Les outils utilisés dans la conception

    Pour avoir des interfaces simples et bien ajustés, nous avons utilisé :

    · Adobe Fireworks CS6 pour la conception des icônes

    · Adobe Photoshop pour le traitement des images présentes sur nos interfaces utilisateurs.

    · Microsoft Visual Studio 2010 Professionnel

    Pour la création des formulaires, nous avons utilisés l'IDE Microsoft Visual Studio 2010Professionnel, qui nous a permis d'utiliser différents contrôles, entre autre les zones de texte, les zones de liste déroulantes, le boutons de commande, le cadre d'image, le Datagrid, etc. La version framework utilisé est Microsoft.NET Framework: 4.0.30.

    · Microsoft SQL Server 200522(*)

    Pour la mise au point de la base de données nous avons fait usage du serveur des bases de données Microsoft SQL Server 2005 qui est un SGBDR mieux placé pour dialoguer avec la suite Visual Studio de Microsoft. SQL Server utilise T-SQL (Transact-SQL), il s'agit d'une implémentation de SQL qui prend en charge les procédures stockées et les déclencheurs (trigger). Le T-SQL est incompatible avec le PL/SQL d'Oracle.Pour les transferts de données, SQL Server utilise le format TDS (Tabular Data Stream) qui a été implémenté dans d'autres bases de données (en particulier dans son homologue Sybase) et dont les spécifications sont publiques. Une implémentation Open Source d'un client TDS est disponible et constitue la base du client SQL Server du projet Mono : FreeTDS

    · AnalyseSI

    Pour la modélisation, nous avons fait usage de l'utilitaire analyseSI adapté à la production des modèles de la méthode MERISE. AnalyseSI, est un logiciel de modélisation de BDDR libre (Base de données relationnelle) par la méthode entités-relations. Ce programme est un outil de modélisation, c'est à dire qu'il permet de créer une représentation simple d'un système, ici d'une base de données relationnelle. Après avoir schématisé la base de données, le programme créera automatiquement le script qui permettra d'installer la base de données sur le serveur et le BDDR de votre choix (tant que celui-ci comprend le langage SQL).

    · Cisco Packet Tracer23(*)

    Cisco Packet Tracer est un simulateur de matériel réseau Cisco (routeurs, commutateurs). Cet outil est créé par Cisco Systems qui le fournit gratuitement aux centres de formation, étudiants et diplômés participant, ou ayant participé, au programmes de formation Cisco (Cisco Networking Academy). Le but de Packet Tracer est d'offrir aux élèves et aux professeurs un outil permettant d'apprendre les principes du réseau, tout en acquérant des compétences aux technologies spécifiques de Cisco. Il peut être utilisé pour s'entrainer, se former, mais également pour de la simulation réseau.

    · Argouml

    Cet utilitaire nous a permis de représeanter les différentes représentations d'accès réseau par les utilisateurs du système

    · Prime Desktop

    Prime Desktop top, nous a également assité dans la conception du schéma réseau Virtual Private Network (Reseau privé virtuel).

    · Inno setup

    Inno setup est un logiciel libre permettant de créer des installateurs pour Windows. Ceux-ci peuvent comporter des scripts programmés en Pascal.

    4.5. Implémentation de la base de données

    Avant d'utiliser la présente base de données, il est impérativement recommandé d'installer sur le poste serveur, les outils de Microsoft SQL Server. Pour notre cas, nous avons signalé plus haut que nous avons fait usage de SQL Server 2005 de Microsoft. Pour installer ce dernier, il faut respecter les étapes d'installation en configurant les services réseaux pour SQL Server et l'autoriser à accepter les connexions distantes. Si non lorsque, vous essayez de vous connecter à une instance de Microsoft SQL Server 2005 à partir d'un ordinateur distant, vous pouvez recevoir un message d'erreur suivant :

    Après installation, comment autoriser Microsoft SQL Server à accepter les connexions distantes ?24(*)

    Pour configurer SQL Server 2005 pour autoriser les connexions à distance, vous devez effectuer ces étapes :

    · Activer les connexions à distance sur l'instance de SQL Server que vous souhaitez vous connecter à partir d'un ordinateur distant.

    · Activer le service Explorateur de SQL Server.

    · Configurer le pare-feu pour autoriser le trafic réseau qui est lié à SQL Server et pour le service Explorateur de SQL Server.

    4.6. Attacher la base de données dans le serveur SQL Server

    Après avoir effectué toutes ces opérations, lancer SQL Server depuis le lanceur d'application de Windows en choisissant SQL Server Management Studio, après la boite de dialogue suivante va nous apparaitre :

    Cliquez sur connecter pour accéder aux outils permettant d'attacher la base de données dans le serveur, et une fenêtre semblable à celle-ci vous apparait, indiquant que la connexion a réussi avec succès :

    Faites un clic droit sur « Databases », choisir l'option « Attach » et suivre les étapes jusqu'à choisir la base de données à attacher à l'emplacement spécifié. La base de données porte le nom de « Gestion_coopec ».

    4.7. Guide utilisateur

    Après toutes les configurations nécessaires et que l'application ait été mise en place, nous passons à une brève description de son fonctionnement. L'application peut fonctionner en mode local (localhost) ou en mode multi utilisateurs. Pour notre cas, il s'agit de l'utilisation des interfaces sur plusieurs postes clients connecté sur une base de données SQL Server distante. Et pour ce faire il faut d'abord par l'installation de l'application sur les postes clients en suivant les étapes indiquées.

    4.7.1. Etape d'installation

    En double cliquant sur « Setup_Gest_Coopec », une fenêtre apparaîtra où vous choisirez la langue d'installation. Généralement, la langue est automatiquement sélectionnée par le système d'exploitation mais vous pouvez toujours changer la sélection suivant le besoin. Au lancement de l'installation, la fenêtre ci-dessous s'affichera :

    Après que vous ayez choisis l'une parmi ces langues proposées, cliquez ensuite sur « OK » pour passer à l'étape suivante ou sur « Cancel » pour annuler l'installation.

    · Assistant d'installation

    Cette fenêtre sert d'information tout simplement. Elle vous invite en outre de continuer sans inquiétude car vous serez assisté tout au long de l'installation. Après avoir cliquez sur « OK » de la fenêtre langue d'installation, vous arriverez sur la fenêtre ci-dessous :

    Cliquez ensuite sur Suivant pour poursuivre l'installation et afficher la fenêtre d'information sur le logiciel ou sur Annuler pour abandonner l'installation

    · Dossier de destination du logiciel

    Cette fenêtre vous permet de choisir un dossier où le logiciel fera la copie des fichiers d'installation, le dossier de destination par défaut de Gest_Coopec est C:\Program Files\Gest_Coopec, toute fois l'utilisateur peut changer en cliquant sur parcourir pour sélectionner un autre dossier de son choix. Outre ces informations, cette fenêtre calcule l'espace disponible sur votre disque dur avant la copie des fichiers dans le dossier de destination que vous avez choisi, alors il est fortement recommandé d'avoir plus de 40,8 Mo libre sur le disque d'installation.

    Voici la fenêtre dossier de destination :

    Vous pouvez soit cliquer sur « Précédent » pour revenir sur la fenêtre information sur le logiciel, et si l'espace disque est suffisante cliquez «Suivant» pour poursuivre avec l'installation, en affichant la fenêtre dossier du menu démarrer pour y créer des raccourcis

    · Dossier du menu démarrer

    Cette fenêtre vous permet de sélectionner un dossier qui contiendra les raccourcis du logiciel dans le menu démarrer. Si vous ne souhaitez pas créer ce raccourci dans votre menu, marqué la case à cocher tout juste au bas de la fenêtre dossier du menu démarrer qui est par défaut décoché donc près à créer pour vous un raccourci.

    Voici ci-dessous, la fenêtre dossier du menu Démarrer :

    Vous pouvez soit cliquer sur « Précédent » pour revenir sur la fenêtre dossier de destination, soit sur «Suivant » pour poursuivre avec l'installation en affichant la fenêtre tâche supplémentaire

    · Fenêtre des tâches supplémentaires

    Cette fenêtre vous permet de créer une icône sur le bureau de Windows, il suffit de cocher la case « Créer une icône sur le bureau».

    La voici donc ci-dessous :

    Vous pouvez soit cliquez sur « Précédent » pour revenir sur la fenêtre dossier du menu démarrer, soit sur « Suivant » pour poursuivre avec l'installation en affichant la fenêtre près à installer :

    · Fenêtre près à installer

    Cette fenêtre donne une vue d'ensemble sur les processus que vous avez effectués avant d'installer le logiciel, voici ci-dessous la fenêtre en question :

    Vous pouvez soit cliquez sur « Précédent» pour revenir sur la fenêtre de sélection des tâches supplémentaires, soit sur « Installer» pour poursuivre avec l'installation en affichant la fenêtre installation en cours :

    · Installation en cours

    Cette fenêtre installe le logiciel sur votre disque dur. Pendant ce temps veuillez patienter pendant que l'assistant installe le logiciel sur votre ordinateur, cela peut prendre quelques minutes selon la vitesse d'exécution des tâches dont dispose votre ordinateur.

    Voici la fenêtre ci-dessous :

    Sur cette fenêtre vous n'avez qu'une seule possibilité, celle de cliquer sur « Annuler » pour abandonner l'installation.

    · Fin d'installation

    Cette fenêtre informe que l'installation a été bien faite et que le logiciel est prêt à s'exécuter. L'utilisateur cliquera en suite sur « Terminer ».

    Si vous ne souhaitez pas exécuter automatiquement le logiciel après installation, décocher la case à cocher « Exécuter Gest_Coopec » qui est par défaut coché donc prêt à exécuter automatiquement le logiciel après son installation, ensuite cliquez sur « Terminer ».

    4.7.2. Lancement de l'application

    A l'exécution de l'application, une fenêtre de sécurité pour accéder aux différentes fonctionnalités, nous exige de fournir les informations d'authentification. Ici, nous avons prévu quatre utilisateurs notamment : l'administrateur de la base de données, le gérant de l'institution, les différents guichetiers au poste dépôt et retrait.

    L'authentification commence par le nom d'utilisateur, puis sélectionner le privilège, ensuite tapez votre mot de passe et enfin cliquer sur le bouton soumettre. Si vous tentez de vous connecter sans succès l'application se ferme après trois essais. Une fois la connexion établie, le formulaire principal s'ouvre tel qu'illustré ci-dessous. Comme nous avons prévu les utilisateurs avec privilège, ils peuvent tous accéder au formulaire du menu principal mais ne peuvent pas effectuer les mêmes opérations dans le système. L'administrateur a la main mise sur toutes les opérations pour assurer la maintenance corrective et adaptative de l'application. Le gérant est le second utilisateur ayant un privilège important dans le système mais lorsqu'il se connecte, il n'a pas droit d'effectuer la gestion des utilisateurs. Pour lui l'accès à l'édition des utilisateurs reste désactivé. Par la suite les autres utilisateurs impliqués dans la gestion de dépôts n'ont accès qu'aux différentes commandes concernant le dépôt et vice versa pour le retrait

    En se connectant comme privilège « admin », comme identifiant « Theocent » et comme mot de passe « vision »directement le formulaire du menu principal récupère automatiquement votre nom juste dans le coin haut droit en indiquant que tel utilisateur est connecté. Et la zone de texte qui récupère l'identifiant de l'utilisateur reste en lecture seul pour que l'utilisateur ne puisse pas le modifier du fait que toutes les opérations que ce dernier effectuera dans le système seront identifiées par son nom. Le formulaire du menu principal est composé entre autre par différents menu et des boutons de commandes juste à gauche du formulaire pour permettre l'accès rapide à quelques opérations du système.

    · Adhésion des membres

    Pour l'identification des membres (adhésion des membres) nous avons la possibilité de cliquer soit le menu « Enregistrement » puis choisir le sous Menu « Adhésion des membres » ou alors passer par le volet d'accès rapide en cliquant sur le bouton en image « Ajout des membres ». Une fois effectuer la boite de dialogue suivante nous apparait :

    Sur cette boite de dialogue, nous avons la présence entre autre des zones de texte pour la saisie des informations, des zones de liste déroulantes pour le choix des valeurs prédéfinies. La première zone de texte ayant comme étiquette « Numéro Folio attribué » reste désactivé. C'est à ce niveau que l'attribution du numéro de compte s'effectue et c'est le système qui s'encharge et n'ont l'utilisateur, par la suite l'utilisateur peut continuer par compléter les autres informations nécessaires à l'identification du membre. Comme nous pouvons le constater, nous avons doté notre application de la capacité soit de charger l'image du membre à partir d'un fichier en cliquant sur le bouton parcourir juste à droite du formulaire de saisie ou soit de capture à partir de la webcam de l'ordinateur en cliquant sur le bouton capturer et après un petit moment une boite de dialogue activant la webcam s'affiche en détectant l'image en face sur le formulaire ci-dessous :

    Après avoir effectué un clic sur le bouton « Capturer », l'image détectée s'affecte dans le cadre d'image juste à gauche du formulaire. Notons que sur ce formulaire nous avons entre autre la possibilité de capturer avec une source de capture externe. Il suffit tout simplement de connecter une webcam externe et qu'elle soit reconnue par le système d'exploitation, puis juste au niveau de la zone de liste déroulante ayant comme étiquette « Source de capture », sélectionner la source externe en question et capturer à partir de ce dernier. Une fois l'image capturée et affectée dans le cadre d'image à gauche, faites un clic sur la case à cocher ayant comme étiquette « Identifier l'image » et directement la zone de texte en bas de la case à cocher s'active pour y saisir le nom de l'image et en fin faites un clic sur le bouton «Valider la prise» et directement le formulaire de capture se ferme, ensuite l'image capturée s'affecte automatiquement dans le cadre d'image se trouvant sur le formulaire d'enregistrement des membres. Par la suite l'utilisateur peut poursuivre avec la saisie d'autres informations sur le membre et enfin cliqué sur le bouton « Enregistrer » du formulaire d'adhésion des membres. Une fois l'opération de sauvegarde effectuée, un message nous apparait, indiquant ce qui suit :

    Quand l'utilisateur clic sur le bouton « OK » juste en au bas du formulaire, un tableau génère automatiquement tous les enregistrements déjà sauvés dans la base de données. Sur l'ensemble des formulaires, nous avons également prévu l'impression de toutes les données soit sur Microsoft Office Excel, Word ou en PDF. Après enregistrement il suffit de cliquer sur le bouton « Imprimer »et patienter un tout petit moment, le formulaire suivant s'affiche :

    Vous soit imprimer directement les données ou soit de les exporter sous Excel, Word ou PDF. Pour exporter, il suffit tout simplement de cliquer sur le bouton ayant l'icône d'enregistrement et de choisir la matrice d'exportation de votre choix puis l'application vous demande de choisir un emplacement d'enregistrement de vos données.

    · Dépôt des fonds

    Au menu principal, nous avons, nous avons également le bouton de commande nommé «Dépôt de fonds », il suffit tout simplement de cliquer dessus et directement le formulaire suivant s'affiche :

    Lors de l'ouverture, le formulaire est vide. Ici il suffit de rechercher un membre enregistré dans le système par son numéro de compte. Dans la zone texte ayant comme étiquette « Numéro de compte », il suffit tout simplement d'y taper le numéro de compte du membre dont l'opération concerne et l'application affiche les informations relatives au membre notamment son identité, sa photo et son solde en compte. Dans le cas contraire, si vous saisissez un numéro de compte qui n'existe pas dans le système l'application vous retourne le message d'erreur suivant :

    Par la suite, si le numéro de compte existe dans le système, l'utilisateur à la possibilité, d'effectuer l'opération de dépôt pour le membre concerné. La procédure àsuivre est d'effectuer le billetage par coupure. Sur le formulaire ci-dessus, nous avons donné aux utilisateurs la possibilité de saisir le nombre de coupure par billet à déposer soit allant de la coupure de 1 $ USD jusqu'à 100 $ USD. Au fur et à mesure que l'utilisateur saisi les coupures à déposer la zone de texte ayant comme étiquette « Montant total à déposer » récupère la totalité du montant courant. Et le groupe d'option ayant comme étiquette « Situation en compte » regroupant deux zones de texte l'une ayant l'étiquette «Ancien solde» et l'autre « Nouveau solde » s'incrémente en additionnant l'ensemble des coupures déposées par le membre et à l'enregistrement, le solde se met à jour depuis les informations concernant le membre. Puis après enregistrement, un formulaire permettant d'imprimer le bordereau courant s'affiche et c'est à l'utilisateur de s'en charger pour faire une preuve dépôt au client.

    Le bordereau de dépôt se présente comme suit :

    · Retrait de fonds

    Pour accéder au formulaire de retrait, il suffit de se situer sur le menu principal. Nous avons la possibilité d'y accéder depuis le menu « Enregistrement» ou tout simplement en cliquant sur le bouton « Retrait de fonds » depuis le volet d'accès rapide et du coup le formulaire suivant s'affiche :

    Sur le présent formulaire de retrait, nous avons entre autre la possibilité de rechercher encore une fois le membre par son numéro de compte pour retirer. Ici une fois le membre existe dans le système, à partir de son numéro de compte nous pouvons accéder à ces informations de base, notamment son identité, sa photo et son solde en compte. Pour qu'un membre puisse retirer de l'argent, il faut qu'il ait un solde supérieur au montant à retirer. Dans le cas contraire, le système ne répondra pas et probablement, il nous affichera le message d'erreur suivant :

    En cas de message pareil, le système oblige l'utilisateur à reprendre les opérations pour continuer. Après opération de retrait, le système nous génére automatiquement la preuve de retrait qui se présente comme suit :

    · Octroi des crédits

    En se référant toujours au menu principal, nous avons une possibilité d'octroyer les crédits aux différents membres enregistrés dans le système. Il suffit tout simplement d'effectuer un clic sur le bouton « Accorder crédit»et du coup le formulaire reprenant les informations sur l'octroi d'un crédit s'affiche. Le formulaire en question ressemble à ceux-ci :

    Comme nous pouvons le constater, sur le présent formulaire, à gauche nous avons la possibilité de retrouver les informations sur l'identité du membre à qui on veut octroyer le crédit et à droite nous avons un autre volet. Ce volet permet d'octroyé le crédit au membre. Entre autre, il faut commencer par saisir le montant à donner en crédit, puis juste au niveau du contrôle ayant comme étiquette «Type de crédit », nous une suite crédit par type :

    · Il y a le crédit au salarié avec comme taux d'intérêt 1,5 % du montant total à rembourser

    · Il y a le crédit SYCOFOP (Système de collecte de fonds sur place) avec taux d'intérêt de 2.5 et

    · Il y a enfin le crédit express avec comme taux d'intérêt 3 % sur le montant total à rembourser.

    Et que donc, une fois le montant à donner en crédit est saisie, il suffit que l'utilisateur sélectionne un type de crédit dans la zone de liste déroulante et tout le reste se calcul automatiquement. Nous pouvons citer le taux d'intérêt, l'intérêt et le total à rembourser pour le crédit concerné.

    · Remboursement des crédits

    Le présent formulaire nous donne la possibilité entre autre de suivre le remboursement d'un crédit soit d'une manière total ou partiel selon que la coopérative a pris les conventions avec le client.

    La procédure à prendre ici, c'est de rechercher le membre ayant un crédit par son l'identifiant du crédit. Une fois le crédit est retrouvé, la suite nous affiche les informations sur le membre dans le système et il nous affiche par la suite le crédit qu'il doit à la coopérative. Il suffit tout simplement alors de choisir dans la zone de liste déroulante le type de remboursement à effectuer (partiel ou total). Par la suite nous avons une zone de texte « Montant à rembourser » dans laquelle il faut impérativement saisir le montant remboursé. Une fois l'utilisateur effectue la saisie du montant en question directement le cadre d'objet nommé situation du crédit change de fréquence, notamment au niveau des zones de texte «crédit restant » et «Total à rembourser» en indiquant à l'utilisateur le montant restant à rembourser et le totalement à rembourser inclus l'intérêt fixé. Après toutes ces manipulations, il faut passer à l'enregistrement des opérations pour que le système en prenne compte.

    · Edition des utilisateurs

    Par la suite nous avons prévu un formulaire pour faciliter les utilisateurs du système. Et cette tâche revient à l'administrateur du système. Voici comme se présente le formulaire d'ajout et d'édition des utilisateurs du système :

    Ce formulaire est uniquement réservé à l'administrateur du système. C'est ici où il faut ajouter les utilisateurs dans le système avec le privilège, le modifier ou le bloquer selon le cas.

    Entre autre au niveau du menu principal, nous avons d'autres menu que nous ne savons représenter ici en capture d'écran mais qu'on peut exploiter une fois on dispose de l'application. Nous avons entre autre le menu pour effectuer les mises à jour de membre, des dépôts, des retraits, des crédits octroyés et de remboursement effectués par les membres ayant des crédits. A titre d'exmple, voici comment se présente le formulaire de mise à jour des crédits octroyés :

    Sur le formulaire ci-dessus, nous avons la possibilité soit d'éditer ou de supprimer un crédit existant dans le système. Pour le faire il suffit tout simplement de saisir l'identifiant du crédit dans la zone de texte indiquée.

    Nous avons ensuite un autre menu reprenant la synthèse de l'ensemble des activités. Dans ce menu nous pouvons afficher la situation de tous les membres en effectuant le tri par montant en compte (croissant et décroissant), le tri par numéro de compte, la synthèse sur le dépôt, retrait, Crédit et remboursement et bien d'autres options.

    Voici en image comme se présente le formulaire sur la situation de tous les dépôts :

    Les codes sources

    `Importation des bibliothèques

    Imports System.Data.SqlClient

    Imports System.Windows.Forms

    Imports Microsoft.Office.Interop

    Imports System.IO

    ` Gestion des utilisateurs avec les privileges

    Private Sub cmdsubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsubmit.Click

    theo += 1

    If theo = 4 Then

    MsgBox("Le nombre maximun d'essai a expiré!", MsgBoxStyle.Exclamation, "Alerte!")

    MsgBox("L'application va se fermer automatiquement pour éviter tout dégat informatique!", MsgBoxStyle.Exclamation, "Alerte!")

    End

    End If

    Dim con As New SqlClient.SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")

    Try

    con.Open()

    cmd = New SqlCommand("select *from T_Login where (identifiant = '" & txtusername.Text & "' and privilege ='" & ComboBox1.Text & "' and pwd = '" & txtpwd.Text & "')", con)

    dr = cmd.ExecuteReader

    If dr.HasRows = False Then

    MsgBox("Nom d'utilisateur et/ou mot de passe inconnu", MsgBoxStyle.Critical, "Identifiez-vous ou contacter l'administrateur système")

    theocent()

    ElseIf dr.HasRows = True Then

    dr.Read()

    Accueil.TxtIdUser.Text = dr(0)

    Accueil.txtNomUser.Text = dr(1)

    If dr(3) = "Admin" Then

    'Accès rapide

    Accueil.cmd_membre.Enabled = True

    Accueil.cmd_depot.Enabled = True

    Accueil.cmd_kuweka.Enabled = True

    Accueil.Button4.Enabled = True

    Accueil.cmd_edituser.Enabled = True

    Accueil.cmdRemb.Enabled = True

    Accueil.cmd_recherhe.Enabled = True

    Accueil.cmd_print.Enabled = True

    Accueil.cmdPropos.Enabled = True

    Accueil.cmd_close.Enabled = True

    'Fichier

    Accueil.ToolStripMenuItem2.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = True

    Accueil.ToolStripMenuItem3.Enabled = True

    Accueil.QuitterToolStripMenuItem.Enabled = True

    'Enregistrement

    Accueil.EnregistrementToolStripMenuItem.Enabled = True

    Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = True

    Accueil.DépôtDesFondsToolStripMenuItem.Enabled = True

    Accueil.RetraitDesFondsToolStripMenuItem.Enabled = True

    Accueil.GestionDesCréditsToolStripMenuItem.Enabled = True

    Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = True

    'Mise à jour

    Accueil.ToolStripMenuItem1.Enabled = True

    Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = True

    Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = True

    Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = True

    Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = True

    Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = True

    'Synthèse

    Accueil.RemboursementToolStripMenuItem.Enabled = True

    Accueil.ToolStripMenuItem5.Enabled = True

    Accueil.ToolStripMenuItem4.Enabled = True

    Accueil.FicheÉpargneToolStripMenuItem.Enabled = True

    Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = True

    Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = True

    'Paramètres

    Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = True

    Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True

    Accueil.NotepadToolStripMenuItem.Enabled = True

    Accueil.PenséésBêtesToolStripMenuItem.Enabled = True

    'j'efface les information en rapport avec la connexion pour qu'un autre ne vienne se connecter avec ça.

    theocent()

    Accueil.Show()

    Me.Hide()

    Else

    If dr(3) = "Gérant" Then

    'Accès rapide

    Accueil.cmd_membre.Enabled = True

    Accueil.cmd_depot.Enabled = False

    Accueil.cmd_kuweka.Enabled = False

    Accueil.Button4.Enabled = True 'Crédit

    Accueil.cmd_edituser.Enabled = False

    Accueil.cmdRemb.Enabled = True

    Accueil.cmd_recherhe.Enabled = True

    Accueil.cmd_print.Enabled = True

    Accueil.cmdPropos.Enabled = True

    Accueil.cmd_close.Enabled = True

    'Fichier

    Accueil.ToolStripMenuItem2.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False

    Accueil.ToolStripMenuItem3.Enabled = True

    Accueil.QuitterToolStripMenuItem.Enabled = True

    'Enregistrement

    Accueil.EnregistrementToolStripMenuItem.Enabled = True

    Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = True

    Accueil.DépôtDesFondsToolStripMenuItem.Enabled = False

    Accueil.RetraitDesFondsToolStripMenuItem.Enabled = False

    Accueil.GestionDesCréditsToolStripMenuItem.Enabled = True

    Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = True

    'Mise à jour

    Accueil.ToolStripMenuItem1.Enabled = True

    Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = True

    Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = False

    Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = False

    Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = True

    Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = True

    'Synthèse

    Accueil.RemboursementToolStripMenuItem.Enabled = True

    Accueil.ToolStripMenuItem5.Enabled = True

    Accueil.ToolStripMenuItem4.Enabled = True

    Accueil.FicheÉpargneToolStripMenuItem.Enabled = True

    Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = True

    Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = True

    'Paramètres

    Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False

    Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice

    Accueil.NotepadToolStripMenuItem.Enabled = True

    Accueil.PenséésBêtesToolStripMenuItem.Enabled = True

    theocent()

    Accueil.Show()

    Me.Hide()

    Else

    If dr(3) = "Depot" Then

    'Accès rapide

    Accueil.cmd_membre.Enabled = False

    Accueil.cmd_depot.Enabled = True

    Accueil.cmd_kuweka.Enabled = False

    Accueil.Button4.Enabled = False 'Crédit

    Accueil.cmd_edituser.Enabled = False

    Accueil.cmdRemb.Enabled = False

    Accueil.cmd_recherhe.Enabled = True

    Accueil.cmd_print.Enabled = False

    Accueil.cmdPropos.Enabled = True

    Accueil.cmd_close.Enabled = True

    'Fichier

    Accueil.ToolStripMenuItem2.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False

    Accueil.ToolStripMenuItem3.Enabled = False

    Accueil.QuitterToolStripMenuItem.Enabled = True

    'Enregistrement

    Accueil.EnregistrementToolStripMenuItem.Enabled = True

    Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = False

    Accueil.DépôtDesFondsToolStripMenuItem.Enabled = True

    Accueil.RetraitDesFondsToolStripMenuItem.Enabled = False

    Accueil.GestionDesCréditsToolStripMenuItem.Enabled = False

    Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = False

    'Mise à jour

    Accueil.ToolStripMenuItem1.Enabled = True

    Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = False

    Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = True 'Depot

    Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = False

    Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = False

    Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = False

    'Synthèse

    Accueil.RemboursementToolStripMenuItem.Enabled = True

    Accueil.ToolStripMenuItem5.Enabled = False

    Accueil.ToolStripMenuItem4.Enabled = True

    Accueil.FicheÉpargneToolStripMenuItem.Enabled = False

    Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = False

    Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = False

    'Paramètres

    Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False

    Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice

    Accueil.NotepadToolStripMenuItem.Enabled = True

    Accueil.PenséésBêtesToolStripMenuItem.Enabled = True

    theocent()

    Accueil.Show()

    Me.Hide()

    Else

    If dr(3) = "Retrait" Then

    'Accès rapide

    Accueil.cmd_membre.Enabled = False

    Accueil.cmd_depot.Enabled = False

    Accueil.cmd_kuweka.Enabled = True 'Retrait

    Accueil.Button4.Enabled = False 'Crédit

    Accueil.cmd_edituser.Enabled = False

    Accueil.cmdRemb.Enabled = False

    Accueil.cmd_recherhe.Enabled = True

    Accueil.cmd_print.Enabled = False

    Accueil.cmdPropos.Enabled = True

    Accueil.cmd_close.Enabled = True

    'Fichier

    Accueil.ToolStripMenuItem2.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem1.Enabled = False

    Accueil.ToolStripMenuItem3.Enabled = False

    Accueil.QuitterToolStripMenuItem.Enabled = True

    'Enregistrement

    Accueil.EnregistrementToolStripMenuItem.Enabled = True

    Accueil.AdhésionDesMembresToolStripMenuItem.Enabled = False

    Accueil.DépôtDesFondsToolStripMenuItem.Enabled = False

    Accueil.RetraitDesFondsToolStripMenuItem.Enabled = True

    Accueil.GestionDesCréditsToolStripMenuItem.Enabled = False

    Accueil.RemboursementDunCréditToolStripMenuItem.Enabled = False

    'Mise à jour

    Accueil.ToolStripMenuItem1.Enabled = True

    Accueil.MiseÀJourDesMembresToolStripMenuItem.Enabled = False

    Accueil.MiseÀJourDesCompteUtilisateursToolStripMenuItem.Enabled = False 'Depot

    Accueil.ActualiserLeRetraitsToolStripMenuItem.Enabled = True

    Accueil.ActualiserLesCréditsToolStripMenuItem.Enabled = False

    Accueil.ActualiserLesRemboursementsToolStripMenuItem.Enabled = False

    'Synthèse

    Accueil.RemboursementToolStripMenuItem.Enabled = True

    Accueil.ToolStripMenuItem5.Enabled = False

    Accueil.ToolStripMenuItem4.Enabled = False

    Accueil.FicheÉpargneToolStripMenuItem.Enabled = True

    Accueil.TousLesRemboursementsToolStripMenuItem.Enabled = False

    Accueil.TousLesRemboursementsToolStripMenuItem1.Enabled = False

    'Paramètres

    Accueil.OutilsDadministrationToolStripMenuItem.Enabled = True

    Accueil.GestionDesUtilisateursToolStripMenuItem.Enabled = False

    Accueil.EditionDesUtilisateursToolStripMenuItem.Enabled = True 'Calculatrice

    Accueil.NotepadToolStripMenuItem.Enabled = True

    Accueil.PenséésBêtesToolStripMenuItem.Enabled = True

    theocent()

    Accueil.Show()

    Me.Hide()

    End If

    End If

    End If

    End If

    End If

    dr.Close()

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    `Parcourir l'exlorateur windows pour insèrer une photo

    Public Class Frm_Membre

    Dim adapter As New SqlDataAdapter

    Dim ds As New DataSet

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

    Form1.ShowDialog()

    End Sub

    ` Parcourir l'explorateur Windows pour choisir une photo

    Private Sub btnparcourir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnparcourir.Click

    Dim theocent As New OpenFileDialog

    theocent.ShowDialog()

    theocent.InitialDirectory = "c:\Photos"

    theocent.Filter = "Photo en Jpg (*.jpg)|*.txt|Coopec (*.*)|*.*"

    If theocent.FileName <> "" Then

    TxtPhoto.Text = "c:\Photos\" & Dir(theocent.FileName)

    Picphoto.Image = Image.FromFile(theocent.FileName)

    End If

    End Sub

    `Enregistrement des données en SQL Server

    Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSave.Click

    If txtnom.TextLength = 0 Then

    MsgBox("Les noms de l'agent sont recommandés!", MsgBoxStyle.Information, "Gest Coopec")

    txtnom.Focus()

    Exit Sub

    End If

    Dim con As New SqlConnection("server=Server; uid=sa; pwd=sql2005; database=Gestion_coopec")

    Dim table As New DataTable

    Try

    con.Open()

    Dim com As New SqlCommand("insert into Membre(Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde) values('" + txtnom.Text + "','" + txtpost.Text + "',convert(datetime,'" + txtdatenaiss.Value + "',103),'" + txtlieunaiss.Text + "','" + combosexe.SelectedItem + "','" + txtid.Text + "','" + txtprofession.Text + "','" + txttel.Text + "','" + txtmobil.Text + "','" + combostatut.SelectedItem + "','" + txtcomune.Text + "','" + txtquartier.Text + "',CONVERT(datetime,'" + txtdate.Value + "',103),'" + txtlieuouvert.Text + "','" + TxtPhoto.Text + "','" + txtfrais.Text + "','" + txt_montantsolde.Text + "')", con)

    com.ExecuteNonQuery()

    adapter = New SqlDataAdapter("select NumFolio,Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde from Membre", con)

    adapter.Fill(table)

    Me.DataGridView1.AutoGenerateColumns = True

    Me.DataGridView1.DataSource = table

    theocent()

    MsgBox("Le membre a été enregistré avec succès!")

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    `Nettoyage des contrôles après enregistrement

    Public Sub theocent()

    txtfolio.Text = ""

    txtfrais.Text = ""

    txt_montantsolde.Text = ""

    txtnom.Text = ""

    txtpost.Text = ""

    combosexe.Text = ""

    combostatut.Text = ""

    txtid.Text = ""

    txtprofession.Text = ""

    txtlieunaiss.Text = ""

    'txtdatenaiss.value = ""

    txtlieuouvert.Text = ""

    txtcomune.Text = ""

    'txtdate.value = ""

    txtmobil.Text = ""

    txttel.Text = ""

    txtquartier.Text = ""

    TxtPhoto.Text = ""

    Picphoto.Image = Nothing

    End Sub

    `Appel de la procedure pour le nettoyage des champs

    Private Sub txtnum_recherche_Click(ByVal sender As Object, ByVal e As System.EventArgs)

    theocent()

    End Sub

    `Exportation des données vers Excel

    Private Sub cmdExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExcel.Click

    Dim xlApp As Excel.Application

    Dim xlWorkBook As Excel.Workbook

    Dim xlWorkSheet As Excel.Worksheet

    Dim misValue As Object = System.Reflection.Missing.Value

    Dim i As Integer

    Dim j As Integer

    xlApp = New Excel.ApplicationClass

    xlWorkBook = xlApp.Workbooks.Add(misValue)

    xlWorkSheet = xlWorkBook.Sheets("Feuil1")

    For i = 0 To DataGridView1.RowCount - 2

    For j = 0 To DataGridView1.ColumnCount - 1

    xlWorkSheet.Cells(i + 1, j + 1) = _

    DataGridView1(j, i).Value.ToString()

    Next

    Next

    xlWorkSheet.SaveAs(Application.StartupPath & "\Les membres.xls") 'enregistre dans le dossier Debug de l'application

    'xlWorkBook.Application.Visible = True

    'xlWorkBook.Activate()

    xlWorkBook.Close()

    xlApp.Quit()

    releaseObject(xlApp)

    releaseObject(xlWorkBook)

    releaseObject(xlWorkSheet)

    'xlWorkBook.Application.Visible = True

    'xlWorkBook.Activate()

    MessageBox.Show("Exportation réussie," & vbNewLine & "vous aurez vos données sur une matrice Excel à l'instant", "Exportez vers Excel", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End Sub

    `Procédure d'initialisation de l'application Excel

    Private Sub releaseObject(ByVal obj As Object)

    Try

    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)

    obj = Nothing

    Catch ex As Exception

    obj = Nothing

    Finally

    GC.Collect()

    End Try

    End Sub

    ` Fonction pour interdir la saisie des alphanumériques dans le zones de texte numérique

    Public Sub ControleTextBox(ByRef e As System.Windows.Forms.KeyPressEventArgs)

    If InStr("0123456789", e.KeyChar) = 0 And e.KeyChar <> vbBack Then

    e.Handled = True

    MsgBox(" Vous devez retourner un caractère numérique pour poursuivre les opération", vbCritical, "Gest Coopec")

    End If

    End Sub

    `Appel de la fonction

    Private Sub txtfrais_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtfrais.KeyPress

    ControleTextBox(e)

    End Sub

    End Class

    `Procédure pour rechercher un enregistrement existant dans la base

    Private Sub txtnum_recherche_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtnum_recherche.Leave

    Dim con As New SqlConnection("server=Server; uid=sa; pwd=sql2005; database=Gestion_coopec")

    'Dim table As New DataTable

    con.Open()

    Dim com As New SqlCommand("SELECT NumFolio,Nom,Postnom,Datenaissance,Lieunais,Sexe,NumCarteId,Profession,Tel_bureau,Tel_mobile,Etacivil,Commune,Quartier,DateAdhesion,Lieu_Adhesion,Photo,Frais_ouverture,Montant_solde FROM Membre where NumFolio='" & txtnum_recherche.Text.Trim() & "'", con)

    Dim dr As SqlDataReader = com.ExecuteReader()

    If dr.Read() Then

    Me.txtfolio.Text = dr("NumFolio").ToString() '1

    Me.txtfrais.Text = dr("Frais_ouverture").ToString() '2

    Me.txt_montantsolde.Text = dr("Montant_solde").ToString() '3

    Me.txtnom.Text = dr("Nom").ToString() '4

    Me.txtpost.Text = dr("Postnom").ToString() '5

    Me.txtdatenaiss.Value = dr("Datenaissance").ToString() '6

    Me.txtlieunaiss.Text = dr("Lieunais").ToString() '7

    Me.combosexe.Text = dr("Sexe").ToString() '8

    Me.txtid.Text = dr("NumCarteId").ToString() '9

    Me.txtprofession.Text = dr("Profession").ToString() '11

    Me.txttel.Text = dr("Tel_bureau").ToString() '12

    Me.txtmobil.Text = dr("Tel_mobile").ToString() '13

    Me.combostatut.Text = dr("Etacivil").ToString() '14

    Me.txtcomune.Text = dr("Commune").ToString() '15

    Me.txtquartier.Text = dr("Quartier").ToString() '16

    Me.txtdate.Value = dr("DateAdhesion").ToString() '17

    txtlieuouvert.Text = dr("Lieu_Adhesion").ToString()

    Me.TxtPhoto.Text = dr("Photo").ToString() '18

    Me.cmdDel.Enabled = True

    Try

    Me.TxtPhoto.Text = dr("Photo")

    Me.Picphoto.Image = Image.FromFile(TxtPhoto.Text)

    Catch ex As Exception

    Me.Picphoto.Image = Nothing

    Me.Picphoto.Image = Image.FromFile("c:\Photos\WCcapture &.jpg")

    End Try

    'adapter = New SqlDataAdapter("select* from Membre where NumFolio='" + txtnum_recherche.Text + "'", con)

    'adapter.Fill(table)

    'Me.DataGridView1.AutoGenerateColumns = True

    'Me.DataGridView1.DataSource = table

    'Me.cmdDel.Enabled = True

    '@ Theocent_Soft, Inc

    Else

    MsgBox("Ce numéro de compte est mal orthograhié ou inéxistant, veillez le retaper!!!!", MsgBoxStyle.Critical)

    txtnum_recherche.Text = ""

    txtnum_recherche.Focus()

    End If

    End Sub

    Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEdit.Click

    If txtfolio.TextLength = 0 Then

    MsgBox("La mise à jour doit s'effectuer d'abord au niveau du numéro de compte!!", MsgBoxStyle.OkOnly, "info")

    'MsgBox("Vous ne povez pas modifier sans insèrer un numéro de compte", MsgBoxStyle.Information, "info")

    txtfolio.Focus()

    Exit Sub

    End If

    Dim con As New SqlConnection("server=Server; uid=sa; pwd=sql2005; database=Gestion_coopec")

    Dim table As New DataTable

    Try

    con.Open()

    Dim com As New SqlCommand("update Membre set Nom='" + txtnom.Text + "',Postnom='" + txtpost.Text + "',Lieunais='" + txtlieunaiss.Text + "',Sexe='" + combosexe.Text + "',NumCarteId='" + txtid.Text + "',Profession='" + txtprofession.Text + "',Tel_bureau='" + txttel.Text + "',Tel_mobile='" + txtmobil.Text + "',Etacivil='" + combostatut.Text + "',Commune='" + txtcomune.Text + "',Quartier='" + txtquartier.Text + "',Lieu_Adhesion='" + txtlieuouvert.Text + "',Photo='" + TxtPhoto.Text + "',Frais_ouverture='" + txtfrais.Text + "',Montant_solde='" + txt_montantsolde.Text + "' where NumFolio='" + txtfolio.Text + "'", con)

    com.ExecuteNonQuery()

    theocent()

    adapter = New SqlDataAdapter("select* from Membre", con)

    adapter.Fill(table)

    Me.DataGridView1.AutoGenerateColumns = True

    Me.DataGridView1.DataSource = table

    MsgBox("La mise à jour a été effectuer avec succès", vbInformation, "Gest Nyalukemba")

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    Private Sub cmdDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDel.Click

    If txtfolio.TextLength = 0 Then

    MsgBox("Veillez rechercher un utilisateur par son nom avant d'effectuer cette opération", MsgBoxStyle.Information, "Gest Coopec")

    txtnum_recherche.Focus()

    End If

    Try

    Dim con As New SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")

    con.Open()

    Dim cmd As New SqlCommand("delete from Membre where NumFolio='" & txtfolio.Text & "'", con)

    cmd.ExecuteNonQuery()

    Me.theocent()

    MsgBox("Le numéro de compte '" & txtnum_recherche.Text & "' a été suprimé avec succès!!!")

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    ` Procédure pour modifier un enregistrement

    rivate Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEdit.Click

    If txtfolio.TextLength = 0 Then

    MsgBox("La mise à jour doit s'effectuer d'abord au niveau du numéro de compte!!", MsgBoxStyle.OkOnly, "info")

    'MsgBox("Vous ne povez pas modifier sans insèrer un numéro de compte", MsgBoxStyle.Information, "info")

    txtfolio.Focus()

    Exit Sub

    End If

    Dim con As New SqlConnection("server=Server; uid=sa; pwd=sql2005; database=Gestion_coopec")

    Dim table As New DataTable

    Try

    con.Open()

    Dim com As New SqlCommand("update Membre set Nom='" + txtnom.Text + "',Postnom='" + txtpost.Text + "',Lieunais='" + txtlieunaiss.Text + "',Sexe='" + combosexe.Text + "',NumCarteId='" + txtid.Text + "',Profession='" + txtprofession.Text + "',Tel_bureau='" + txttel.Text + "',Tel_mobile='" + txtmobil.Text + "',Etacivil='" + combostatut.Text + "',Commune='" + txtcomune.Text + "',Quartier='" + txtquartier.Text + "',Lieu_Adhesion='" + txtlieuouvert.Text + "',Photo='" + TxtPhoto.Text + "',Frais_ouverture='" + txtfrais.Text + "',Montant_solde='" + txt_montantsolde.Text + "' where NumFolio='" + txtfolio.Text + "'", con)

    com.ExecuteNonQuery()

    theocent()

    adapter = New SqlDataAdapter("select* from Membre", con)

    adapter.Fill(table)

    Me.DataGridView1.AutoGenerateColumns = True

    Me.DataGridView1.DataSource = table

    MsgBox("La mise à jour a été effectuer avec succès", vbInformation, "Gest Nyalukemba")

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    ` Procédure pour supprimer un enregistrement

    Private Sub cmdDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDel.Click

    If txtfolio.TextLength = 0 Then

    MsgBox("Veillez rechercher un utilisateur par son nom avant d'effectuer cette opération", MsgBoxStyle.Information, "Gest Coopec")

    txtnum_recherche.Focus()

    End If

    Try

    Dim con As New SqlConnection("server=Server;uid=sa;pwd=sql2005;database=Gestion_coopec")

    con.Open()

    Dim cmd As New SqlCommand("delete from Membre where NumFolio='" & txtfolio.Text & "'", con)

    cmd.ExecuteNonQuery()

    Me.theocent()

    MsgBox("Le numéro de compte '" & txtnum_recherche.Text & "' a été suprimé avec succès!!!")

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

    `Procédure pour capturer les images

    Imports DirectX.Capture

    Imports System.Drawing

    Imports System.Drawing.Imaging

    Public Class Form1

    Inherits System.Windows.Forms.Form

    #Region " Code généré par le Concepteur Windows Form "

    Dim WCcapture As String

    Public Sub New()

    MyBase.New()

    'Cet appel est requis par le Concepteur Windows Form.

    InitializeComponent()

    'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

    End Sub

    'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

    If disposing Then

    If Not (components Is Nothing) Then

    components.Dispose()

    End If

    End If

    MyBase.Dispose(disposing)

    End Sub

    'Requis par le Concepteur Windows Form

    Private components As System.ComponentModel.IContainer

    'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form

    'Elle peut être modifiée en utilisant le Concepteur Windows Form.

    'Ne la modifiez pas en utilisant l'éditeur de code.

    Friend WithEvents Button1 As System.Windows.Forms.Button

    Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox

    Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox

    Friend WithEvents PicCam As System.Windows.Forms.PictureBox

    Friend WithEvents CmdCapture As System.Windows.Forms.Button

    Friend WithEvents Label1 As System.Windows.Forms.Label

    Friend WithEvents Button2 As System.Windows.Forms.Button

    Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox

    Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox

    Friend WithEvents cmdvalide As System.Windows.Forms.Button

    Friend WithEvents txtnomCapt As System.Windows.Forms.TextBox

    Friend WithEvents PicCapture As System.Windows.Forms.PictureBox

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))

    Me.Button1 = New System.Windows.Forms.Button()

    Me.PicCapture = New System.Windows.Forms.PictureBox()

    Me.ComboBox1 = New System.Windows.Forms.ComboBox()

    Me.ComboBox2 = New System.Windows.Forms.ComboBox()

    Me.PicCam = New System.Windows.Forms.PictureBox()

    Me.CmdCapture = New System.Windows.Forms.Button()

    Me.Label1 = New System.Windows.Forms.Label()

    Me.Button2 = New System.Windows.Forms.Button()

    Me.GroupBox1 = New System.Windows.Forms.GroupBox()

    Me.cmdvalide = New System.Windows.Forms.Button()

    Me.txtnomCapt = New System.Windows.Forms.TextBox()

    Me.CheckBox1 = New System.Windows.Forms.CheckBox()

    CType(Me.PicCapture, System.ComponentModel.ISupportInitialize).BeginInit()

    CType(Me.PicCam, System.ComponentModel.ISupportInitialize).BeginInit()

    Me.GroupBox1.SuspendLayout()

    Me.SuspendLayout()

    '

    'Button1

    '

    Me.Button1.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))

    Me.Button1.Image = CType(resources.GetObject("Button1.Image"), System.Drawing.Image)

    Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft

    Me.Button1.Location = New System.Drawing.Point(303, 385)

    Me.Button1.Name = "Button1"

    Me.Button1.Size = New System.Drawing.Size(295, 31)

    Me.Button1.TabIndex = 1

    Me.Button1.Text = "Valider la configuration"

    Me.Button1.UseVisualStyleBackColor = False

    '

    'PicCapture

    '

    Me.PicCapture.BackColor = System.Drawing.SystemColors.ActiveBorder

    Me.PicCapture.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D

    Me.PicCapture.Location = New System.Drawing.Point(12, 12)

    Me.PicCapture.Name = "PicCapture"

    Me.PicCapture.Size = New System.Drawing.Size(275, 234)

    Me.PicCapture.TabIndex = 7

    Me.PicCapture.TabStop = False

    '

    'ComboBox1

    '

    Me.ComboBox1.FormattingEnabled = True

    Me.ComboBox1.Location = New System.Drawing.Point(113, 394)

    Me.ComboBox1.Name = "ComboBox1"

    Me.ComboBox1.Size = New System.Drawing.Size(174, 21)

    Me.ComboBox1.TabIndex = 9

    '

    'ComboBox2

    '

    Me.ComboBox2.FormattingEnabled = True

    Me.ComboBox2.Location = New System.Drawing.Point(803, 391)

    Me.ComboBox2.Name = "ComboBox2"

    Me.ComboBox2.Size = New System.Drawing.Size(44, 21)

    Me.ComboBox2.TabIndex = 10

    '

    'PicCam

    '

    Me.PicCam.BackColor = System.Drawing.SystemColors.ActiveBorder

    Me.PicCam.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D

    Me.PicCam.Location = New System.Drawing.Point(303, 12)

    Me.PicCam.Name = "PicCam"

    Me.PicCam.Size = New System.Drawing.Size(295, 367)

    Me.PicCam.TabIndex = 12

    Me.PicCam.TabStop = False

    '

    'CmdCapture

    '

    Me.CmdCapture.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))

    Me.CmdCapture.Font = New System.Drawing.Font("Microsoft Sans Serif", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

    Me.CmdCapture.ForeColor = System.Drawing.Color.Navy

    Me.CmdCapture.Image = CType(resources.GetObject("CmdCapture.Image"), System.Drawing.Image)

    Me.CmdCapture.Location = New System.Drawing.Point(617, 12)

    Me.CmdCapture.Name = "CmdCapture"

    Me.CmdCapture.Size = New System.Drawing.Size(129, 318)

    Me.CmdCapture.TabIndex = 11

    Me.CmdCapture.Text = "Capturer"

    Me.CmdCapture.UseVisualStyleBackColor = False

    '

    'Label1

    '

    Me.Label1.AutoSize = True

    Me.Label1.Location = New System.Drawing.Point(9, 396)

    Me.Label1.Name = "Label1"

    Me.Label1.Size = New System.Drawing.Size(98, 13)

    Me.Label1.TabIndex = 13

    Me.Label1.Text = "Source de capture:"

    '

    'Button2

    '

    Me.Button2.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))

    Me.Button2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

    Me.Button2.ForeColor = System.Drawing.SystemColors.Desktop

    Me.Button2.Image = CType(resources.GetObject("Button2.Image"), System.Drawing.Image)

    Me.Button2.Location = New System.Drawing.Point(617, 336)

    Me.Button2.Name = "Button2"

    Me.Button2.Size = New System.Drawing.Size(128, 80)

    Me.Button2.TabIndex = 14

    Me.Button2.Text = "Annuler"

    Me.Button2.TextAlign = System.Drawing.ContentAlignment.BottomCenter

    Me.Button2.UseVisualStyleBackColor = False

    '

    'GroupBox1

    '

    Me.GroupBox1.BackColor = System.Drawing.SystemColors.ActiveBorder

    Me.GroupBox1.Controls.Add(Me.cmdvalide)

    Me.GroupBox1.Controls.Add(Me.txtnomCapt)

    Me.GroupBox1.Controls.Add(Me.CheckBox1)

    Me.GroupBox1.Location = New System.Drawing.Point(12, 252)

    Me.GroupBox1.Name = "GroupBox1"

    Me.GroupBox1.Size = New System.Drawing.Size(275, 127)

    Me.GroupBox1.TabIndex = 15

    Me.GroupBox1.TabStop = False

    Me.GroupBox1.Text = "Zone de sauvegarge"

    '

    'cmdvalide

    '

    Me.cmdvalide.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))

    Me.cmdvalide.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

    Me.cmdvalide.ForeColor = System.Drawing.Color.Navy

    Me.cmdvalide.Image = CType(resources.GetObject("cmdvalide.Image"), System.Drawing.Image)

    Me.cmdvalide.Location = New System.Drawing.Point(134, 16)

    Me.cmdvalide.Name = "cmdvalide"

    Me.cmdvalide.Size = New System.Drawing.Size(95, 105)

    Me.cmdvalide.TabIndex = 2

    Me.cmdvalide.Text = "Valider la prise"

    Me.cmdvalide.TextAlign = System.Drawing.ContentAlignment.BottomCenter

    Me.cmdvalide.UseVisualStyleBackColor = False

    '

    'txtnomCapt

    '

    Me.txtnomCapt.Location = New System.Drawing.Point(6, 58)

    Me.txtnomCapt.Name = "txtnomCapt"

    Me.txtnomCapt.Size = New System.Drawing.Size(122, 20)

    Me.txtnomCapt.TabIndex = 1

    '

    'CheckBox1

    '

    Me.CheckBox1.AutoSize = True

    Me.CheckBox1.Location = New System.Drawing.Point(6, 30)

    Me.CheckBox1.Name = "CheckBox1"

    Me.CheckBox1.Size = New System.Drawing.Size(101, 17)

    Me.CheckBox1.TabIndex = 0

    Me.CheckBox1.Text = "Identifier l'image"

    Me.CheckBox1.UseVisualStyleBackColor = True

    '

    'Form1

    '

    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

    Me.BackColor = System.Drawing.SystemColors.Control

    Me.ClientSize = New System.Drawing.Size(757, 428)

    Me.Controls.Add(Me.GroupBox1)

    Me.Controls.Add(Me.Button2)

    Me.Controls.Add(Me.Label1)

    Me.Controls.Add(Me.CmdCapture)

    Me.Controls.Add(Me.ComboBox2)

    Me.Controls.Add(Me.ComboBox1)

    Me.Controls.Add(Me.PicCapture)

    Me.Controls.Add(Me.Button1)

    Me.Controls.Add(Me.PicCam)

    Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)

    Me.MaximizeBox = False

    Me.MinimizeBox = False

    Me.Name = "Form1"

    Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen

    Me.Text = "Capture d'une photo"

    CType(Me.PicCapture, System.ComponentModel.ISupportInitialize).EndInit()

    CType(Me.PicCam, System.ComponentModel.ISupportInitialize).EndInit()

    Me.GroupBox1.ResumeLayout(False)

    Me.GroupBox1.PerformLayout()

    Me.ResumeLayout(False)

    Me.PerformLayout()

    End Sub

    #End Region

    ` A l'ouverture du formulaire recherche des dispositives vidéos

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim j As Short

    Dim f As Filter

    Try

    'listage des peripheriques video installés sur la machine

    ComboBox1.Items.Clear()

    For j = 0 To Dispositivos.VideoInputDevices.Count - 1

    f = Dispositivos.VideoInputDevices(j)

    ComboBox1.Items.Add(f.Name)

    Next

    If j > 0 Then ComboBox1.SelectedIndex = 0

    'listage des peripheriques audio installés sur la machine

    ComboBox2.Items.Clear()

    For j = 0 To Dispositivos.AudioInputDevices.Count - 1

    f = Dispositivos.AudioInputDevices(j)

    ComboBox2.Items.Add(f.Name)

    Next

    If j > 0 Then ComboBox2.SelectedIndex = 0

    'pre configuration du capturing

    'definission de la camera

    CaptureInformation2.Camera = Dispositivos.VideoInputDevices(ComboBox1.SelectedIndex)

    'mise en place du stream video et audio

    CaptureInformation2.CaptureInfo = New DirectX.Capture.Capture(CaptureInformation2.Camera, Dispositivos.AudioInputDevices(ComboBox2.SelectedIndex))

    'renseignement du panneau d'affichage de la video

    CaptureInformation2.CaptureInfo.PreviewWindow = PicCam

    'compteur pour les capture d'image (frame video)

    CaptureInformation2.Counter = 1

    CaptureInformation2.CounterFrames = 1

    'configurations avancées

    Configurer()

    'pour faire plus joli

    Button1.Enabled = False

    'pour la gestion evennementiel de la capture d'ecran je cree un gestionnaire d evennement sur Framecapturecomplete

    AddHandler CaptureInformation2.CaptureInfo.FrameCaptureComplete, AddressOf NewCaptureReady

    Catch ex As Exception

    MsgBox(ex.Message)

    End

    End Try

    '******pour la sauvegarde de mon image

    If CheckBox1.Checked = True Then

    cmdvalide.Enabled = True

    txtnomCapt.Enabled = True

    Else

    cmdvalide.Enabled = False

    txtnomCapt.Enabled = False

    End If

    '**************************************

    End Sub

    ` Module pour préparer la configuration de l'image dans l'environnement Windows

    Private Sub Configurer()

    Try

    'configurations avancées

    'configuration du systeme de compression video et audio

    CaptureInformation2.CaptureInfo.VideoCompressor = Dispositivos.VideoCompressors(1) 'compression video

    'taille de la video

    CaptureInformation2.CaptureInfo.FrameSize = New Size(320, 240) 'taille de la video

    'FPS de la video

    CaptureInformation2.CaptureInfo.FrameRate = 50 'FPS

    'fichier .avi

    ''CaptureInformation.CaptureInfo.Filename = Application.StartupPath + "\essai.avi"

    'lancement du streaming d'affichage

    CaptureInformation2.CaptureInfo.RenderPreview()

    Catch ex As Exception

    MsgBox(ex.Message)

    End

    End Try

    End Sub

    ` Procédure pour capturer à nouveau si l'image capturée ne vous plait pas

    Private Sub NewCaptureReady(ByVal Sender As System.Windows.Forms.PictureBox)

    'appele par le gestionnaire de handler sur l'evennement "FrameCapture

    'ma picture capturé est arrivée...

    Dim la As PictureBox = CType(Sender, PictureBox) 'la je converti mon picturebox en picturebox...je sais pas pourquoi, fo le faire sinom ca marche pas

    Try

    PicCapture.Image = la.Image 'j affecte ma capture d'image a mon picturebox qui attend que ca.

    Catch ex As Exception

    MsgBox(ex.Message)

    End

    End Try

    End Sub

    Sub Tue(ByVal Chem As String)

    Try

    Catch ex As Exception

    'rien

    End Try

    End Sub

    Private Sub CmdCapture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdCapture.Click

    Try

    'demande une capture DirectX ...et lorsqu'elle est ready je la recoit par le Handler cree un peut plus haut

    CaptureInformation2.CaptureInfo.CaptureFrame()

    'Tue(System.AppDomain.CurrentDomain.BaseDirectory() & WCcapture & ".jpg")

    Tue("c:\Photos\" & WCcapture & ".jpg")

    Do While PicCapture.Image Is Nothing

    Application.DoEvents()

    Loop

    PicCapture.Image.Save("c:\Photos\" & "WCcapture &.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

    Catch ex As Exception

    MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, "impossible d'enregister l'image")

    End Try

    'End

    End Sub

    ` Attribuer un nom à l'image capturer

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

    If CheckBox1.Checked = True Then

    cmdvalide.Enabled = True

    txtnomCapt.Enabled = True

    Else

    cmdvalide.Enabled = False

    txtnomCapt.Enabled = False

    End If

    End Sub

    `Valider l'image capturée et affectation de l'image dans un formulaire different

    Private Sub cmdvalide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdvalide.Click

    Dim NomImage As String

    Dim cheminSave As String

    NomImage = txtnomCapt.Text

    cheminSave = "C:\Photos\" & NomImage & ".jpg"

    If PicCapture.Image Is Nothing Then

    'PicCapture.Image.Save("cheminSave") '& "d:\Photos"

    PicCapture.Image.Save("C:\Photos\" & NomImage & ".jpg")

    End If

    Frm_Membre.Picphoto.Image = PicCapture.Image

    Frm_Membre.TxtPhoto.Text = cheminSave

    Me.Dispose()

    Me.Close()

    End Sub

    End Sub

    End Class

    Parcourir les enregistrements dans la base

    Private Sub GetIdDepot(ByVal CursorPosition As Integer)

    txtIdDepot.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(0)

    txtNomMembr.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(1)

    txtpostnomMembre.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(2)

    txtnomGuichetier.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(3)

    txtanciensolde.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(4)

    txtnuvosolde.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(5)

    txtMontantot.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(6)

    txtdeposepar.Text = ds.Tables("dsDepots").Rows(CursorPosition).Item(7)

    If CursorPosition = 0 And CursorPosition = ds.Tables("dsDepots").Rows.Count - 1 Then

    BtNext.Enabled = False

    BtPrevious.Enabled = False

    ElseIf CursorPosition = 0 And CursorPosition < ds.Tables("dsDepots").Rows.Count - 1 Then

    BtNext.Enabled = True

    BtPrevious.Enabled = False

    ElseIf CursorPosition > 0 And CursorPosition < ds.Tables("dsDepots").Rows.Count - 1 Then

    BtNext.Enabled = True

    BtPrevious.Enabled = True

    ElseIf CursorPosition > 0 And CursorPosition = ds.Tables("dsDepots").Rows.Count - 1 Then

    BtNext.Enabled = False

    BtPrevious.Enabled = True

    End If

    End Sub

    `Le billetage des coupures au dépôt

    Private Sub txtundol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtundol.TextChanged

    Dim undol As Integer

    If txtundol.Text = "" Then

    undol = 0

    txtundol.Text = 0

    'il faut retrancher le nombre du billet mal saisie lors du backspace

    Else

    undol = CInt(txtundol.Text)

    End If

    txtundoltot.Text = undol * 1

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtundoltot.Text)

    'Mise à jour du nouveau solde

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    Private Sub txtcinqdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinqdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcinqdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcinqdol.TextChanged

    Dim Cinqdol As Integer

    If txtcinqdol.Text = "" Then

    Cinqdol = 0

    txtcinqdol.Text = 0

    txtMontantot.Text = CInt(txtMontantot.Text) - CInt(txtcinddoltot.Text)

    Else

    'Cinqdol = CInt(txtcinqdol.Text)

    Cinqdol = (txtcinqdol.Text)

    End If

    txtcinddoltot.Text = Cinqdol * 5

    'apple procedure calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtcinddoltot.Text)

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    Private Sub txtdixdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdixdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtdixdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtdixdol.TextChanged

    Dim Dixdol As Integer

    If txtdixdol.Text = "" Then

    Dixdol = 0

    txtdixdol.Text = 0

    Else

    Dixdol = CInt(txtdixdol.Text)

    End If

    txtdixdoltot.Text = Dixdol * 10

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtdixdoltot.Text)

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    Private Sub txtvingtdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtvingtdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtvingtdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtvingtdol.TextChanged

    Dim Vingdol As Integer

    If txtvingtdol.Text = "" Then

    Vingdol = 0

    txtvingtdol.Text = 0

    Else

    Vingdol = CInt(txtvingtdol.Text)

    End If

    txtvingtdoltot.Text = Vingdol * 20

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtvingtdoltot.Text)

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    Private Sub txtcinquantedol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinquantedol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcinquantedol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcinquantedol.TextChanged

    Dim C50dol As Integer

    If txtcinquantedol.Text = "" Then

    C50dol = 0

    txtcinquantedol.Text = 0

    Else

    C50dol = CInt(txtcinquantedol.Text)

    End If

    txtcinquantedoltot.Text = C50dol * 50

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtcinquantedoltot.Text)

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    Private Sub txtcentdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcentdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcentdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcentdol.TextChanged

    Dim C100dol As Integer

    If txtcentdol.Text = "" Then

    C100dol = 0

    txtcentdol.Text = 0

    Else

    C100dol = CInt(txtcentdol.Text)

    End If

    txtcentdoltot.Text = C100dol * 100

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtcentdoltot.Text)

    txtnuvosolde.Text = CInt(txtanciensolde.Text) + CInt(txtMontantot.Text)

    End Sub

    ` Le billetage au retrait

    Private Sub txtundol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtundol.TextChanged

    Dim undol As Integer

    If txtundol.Text = "" Then

    undol = 0

    txtundol.Text = 0

    'il faut retrancher le nombre du billet mal saisie lors du backspace

    Else

    undol = CInt(txtundol.Text)

    End If

    txtundoltot.Text = undol * 1

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtundoltot.Text)

    'Update pour nouvo solde

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    Private Sub txtcinqdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinqdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcinqdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcinqdol.TextChanged

    Dim Cinqdol As Integer

    If txtcinqdol.Text = "" Then

    Cinqdol = 0

    txtcinqdol.Text = 0

    txtMontantot.Text = CInt(txtMontantot.Text) - CInt(txtCinqdolTot.Text)

    Else

    Cinqdol = CInt(txtcinqdol.Text)

    End If

    txtCinqdolTot.Text = Cinqdol * 5

    'appele procedure calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtCinqdolTot.Text)

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    Private Sub txtdixdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdixdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtdixdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtdixdol.TextChanged

    Dim Dixdol As Integer

    If txtdixdol.Text = "" Then

    Dixdol = 0

    txtdixdol.Text = 0

    Else

    Dixdol = CInt(txtdixdol.Text)

    End If

    txtdixdoltot.Text = Dixdol * 10

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtdixdoltot.Text)

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    Private Sub txtvingtdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtvingtdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtvingtdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtvingtdol.TextChanged

    Dim Vingdol As Integer

    If txtvingtdol.Text = "" Then

    Vingdol = 0

    txtvingtdol.Text = 0

    Else

    Vingdol = CInt(txtvingtdol.Text)

    End If

    txtvingtdoltot.Text = Vingdol * 20

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtvingtdoltot.Text)

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    Private Sub txtcinquantedol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcinquantedol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcinquantedol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcinquantedol.TextChanged

    Dim C50dol As Integer

    If txtcinquantedol.Text = "" Then

    C50dol = 0

    txtcinquantedol.Text = 0

    Else

    C50dol = CInt(txtcinquantedol.Text)

    End If

    txtcinquantedoltot.Text = C50dol * 50

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtcinquantedoltot.Text)

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    Private Sub txtcentdol_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcentdol.KeyPress

    ControleTextBox(e)

    End Sub

    Private Sub txtcentdol_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcentdol.TextChanged

    Dim C100dol As Integer

    If txtcentdol.Text = "" Then

    C100dol = 0

    txtcentdol.Text = 0

    Else

    C100dol = CInt(txtcentdol.Text)

    End If

    txtcentdoltot.Text = C100dol * 100

    'calcul montant depot

    txtMontantot.Text = CInt(txtMontantot.Text) + CInt(txtcentdoltot.Text)

    If CInt(txtanciensolde.Text) < CInt(txtMontantot.Text) Then

    MsgBox("Votre solde est insuffisant!!! vous ne pouvez pas retirer", MsgBoxStyle.Critical)

    Else

    txtnuvosolde.Text = CInt(txtanciensolde.Text) - CInt(txtMontantot.Text)

    End If

    End Sub

    `Procédure pour calculer les crédits

    Private Sub cboTypeCredit_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboTypeCredit.TextChanged

    If cboTypeCredit.Text = "Crédit enseignants" Then

    txtTauxInter.Text = 1.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit aux salariés des Eses de l Etat" Then

    txtTauxInter.Text = 1.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit aux salariés des Entreprises" Then

    txtTauxInter.Text = 1.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédits au P.M.E" Then

    txtTauxInter.Text = 2.5

    txtInteret.Text = 0

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédits ordinaires individuels" Then

    txtTauxInter.Text = 2.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit solidaires mamans" Then

    txtTauxInter.Text = 2.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit avec le système de collecte de fonds sur place" Then

    txtTauxInter.Text = 2.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit agricole" Then

    txtTauxInter.Text = 2.5

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    If cboTypeCredit.Text = "Crédit express" Then

    txtTauxInter.Text = 3

    txtInteret.Text = CDbl(txtMontantCredit.Text) * CDbl(txtTauxInter.Text) / 100

    txtTotrembourse.Text = CDbl(txtInteret.Text) + CDbl(txtMontantCredit.Text)

    End If

    End Sub

    Conclusion

    Dans le présent travail, nous avons traité « Du développement d'une architecture « Client - Serveur » pour la gestion des coopératives d'épargne et de crédit. Cas de la Coopec Nyalukemba ». L'objectif étant de mettre en place un système d'information qui fonctionnerait en réseau local ou même étendu et qui faciliterait la gestion des activités entre les différents guichets et l'ensemble du personnel de l'institution ainsi que faciliter la production des différents rapports de synthèse en temps réel.

    Rappelons que nous avons posé notre problématique sur les questions principales suivantes :

    - Quelles stratégies de suivi et de contrôle que doit adopter ce système pour accorder aux membres et agents de la coopérative un service de qualité, fiable et sécurisé?

    - Quel système faut-il mettre au point pour centraliser et partager les données liées aux opérations de la Coopérative dans tous ces services ?

    Face à ces problèmes, nous avons émis les réponses provisoires suivantes :

    - A ce sujet, il convient de recourir à la nouvelle stratégie de gestion de données relatives aux Coopératives d'Epargne et de Crédit au moyen de l'informatique, ce qui permettra l'amélioration et le perfectionnement du travail pour une rentabilité optimale.

    - La mise au point d'une base de données, conçue spécialement pour la gestion des adhésions, des dépôts ; des retraits, d'octroi, de remboursement des crédits et biens d'autres, serait une solution efficiente et rénovée pour faciliter ces différentes opérations et minimiser la lenteur dans la production de certains rapports liés aux membres de la coopérative et cette base de données servirait à stocker diverses informations dont on se servirait plus tard pour telle ou telle autre situation.

    - Ce partage en réseau de la base de données faciliterait au gérant, aux charges de crédits et risques, au guichetier et autres agents de la coopérative d'avoir accès en temps réel aux informations des membres, afin d'avoir une main mise sur toutes les activités et d'en faire le calcul directe des soldes entre les différents dépôts et retraits effectués au cours d'une période donnée.

    En confrontant la première hypothèse aux résultats auxquels nous sommes aboutis, nous confirmons sans doute que nous avons recouru aux nouvelles stratégies de gestion rationnelle des institutions de micro finance car dans l'ensemble notre application constitue une solution aux différents problèmes identifié au sein de la coopérative.

    Par la suite nous confirmons la deuxième hypothèse car l'application conçue facilite spécialement la gestion des adhésions, des dépôts ; des retraits, d'octroi, de remboursement des crédits. L'application est également capable de retrouver l'ensemble des informations relatives à une opération donnée et de produire le rapport pour chacune des opérations selon la demande des utilisateurs.

    Quant à la dernière, nous l'affirmons sans doute. L'application conçue répond aux critères multi utilisateurs en ayant prévu une architecture réseau permettant aux utilisateurs du système d'information (Administrateur de la base de données, Gérant et les différents guichetiers) d'y accéder en temps réel et d'y effectuer les opérations en interrogeant une base de données distante.

    Etant donné qu'un travail scientifique, ne manque jamais quelques lacunes, nécessitant des correctifs ou d'améliorations prochaines par d'autres chercheurs dans la même thématique. C'est la raison pour laquelle toute suggestion ou remarque serait la bienvenue de la part de lecteurs. Il nous est indispensable alors de donner certaines propositions de sujet de recherche scientifique aux futurs chercheurs qui nous emboiteront le pas.

    · Mise en place d'un système d'information multiposte pour la gestion des opérations de virement et de transfert des fonds par intégration des techniques de Win socket et Windows communication Fondation.

    · Conception d'une application informatique de gestion d'une institution de micro finance usant d'une multitude de devise de monnaies.

    Ainsi le monde étant ouvert, nous restons unis entre chercheur, pour contribuer à l'évolution de la recherche scientifique.

    Bibliographie

    - TFC, Mémoires et Thèses

    1. LUFUNGULO BISIMWA : Conception d'un système intégré de gestion d'une coopérative d'épargne et de crédit relatif au domaine d'adhésion, épargne, crédit, retrait et comptabilité ; Cas de la COOPEC MOCC BUKAVU. Mémoire inédit ISP BUKAVU, 2009-2010.

    2. Pascal Blaise KADIEBUE Kabasele : Conception et réalisation d'une base de données pour la gestion des micro-crédits à impact visible, cas de la COOPECDEKOC ; Mémoire inédit Université Notre Dame de Kasaï, 2008-2009.

    - Livres

    3. Jean-Luc BAPTISTE, Merise, guide pratique (modélisation des données et des traitements), langage SQL), Edition ENI, Paris 2009 ;

    4. Hankerspace, Apprenez à programmer en VB.NET, Capegemini, Paris, 2013 ;

    5. Chantal Gribaumont (Taguan), Administrez vos bases de données avec MySQL, Paris, Simple IT, 2012 ;

    6. Jérôme GABILLAUD, Administration d'une base de données avec SQL Server Management Studio, Copyright - Edition ENI- Février 2009 ;

    7. Thierry GROUSSARD, Visual Basic. NET, Développez avec Visual Studio 2008, Copyright - Edition ENI- Avril 2008 ;

    8. Paul BOGER, A programmer's Introduction to VISUAL BASIC.NET, Sams Publishing 201 West 103rd Street, USA 2008;

    9. Lars Powers, & Mike Snell, Microsoft® Visual Studio 2008 Unleashed, Sams 800 East 96th Street, Indianapolis, Indiana 46240, USA 2008;;

    10. Dave Grundgeiger, Programming Visual Basic .NET, O'Reilly, First Edition January 2002, ISBN: 0-596-00093-6, 464 pages;

    11. Matthew Mac Donald, Insight for classic VB.NET developers, San Francisco, February 2006;

    12. KABUYE KIRUMIRA, Visual Basic.NET programming to beginners, CSMUnit, June 2009, Kampala;

    13. Adrienne BERKOWITZ & associates, Introduction to VB.NET Manual, Education, republic of South Africa, 2008;

    - Cours

    14. Philipe Lassere, Cours de Visual Basic.Net, developpez.com, derrière mise à jour 08/01/2011 ;

    15. Prof. Dr. Saint-Jean DJUNGU, Cours de Méthodes d'Analyse en Informatique, inédit, G2 IG, ISP-Bukavu, 2010-2011 ;

    16. KASELE W., Cours de conception des systèmes d'information, inédit, L1 IG ISP-Bukavu, 2011-2012 ;

    17. Prof. Sindano., Cours d'informatique de gestion, inédit, L2IG, ISP-Bukavu, 2012-2013 ;

    - Webographie

    - http://morpheus.developpez.com/sql-server-2005/ valide le 04/03/2013 à 09h 32'

    - http://www.sqlfr.com/forum/sujet-AIDE-PARTAGER-BASE-DONNEE-SQL-RESEAU-LOCAL_1406898.aspx valide le 09/03/2013

    - http://www.vbfrance.com/tutoriaux/COMMENT-CREER-SYSTEME-LOGIN-VB-NET_1337.aspx valide le 15/03/2013

    - http://support.microsoft.com/kb/832017/fr valide le 15/03/2012

    - http://www.vbfrance.com/forum/sujet-EXPORTER-DONNEES-DATAGRIDVIEW-VB-NET-VERS-EXCEL_1583850.aspx valide le 15/06/2013

    - http://www.vbfrance.com/codes/IMPRIMER-DATAGRIDVIEW-AUTRES-CONTROLES_46951.aspx valide le 15/06/2013

    - http://codes-sources.commentcamarche.net/source/40449-capture-d-image-dans-flux-video-de-webcam valide le 08/12/2012

    - http://www.siteduzero.com/forum/sujet/webcam-et-vb-net-13246 valide le 11/05/2013

    - http://www.siteduzero.com/forum/sujet/convertir-les-string-en-integer-en-mode-graphique valide le 08/12/2012;

    - http://www.developpez.net/forums/d1195087/dotnet/langages/vbnet/datagridview-select-avec-jointure-entre-deux-tables/ valide le 30 aout 2013

    - http://codes-sources.commentcamarche.net/forum/affich-1125508-requete-select-sur-plusieurs-tables valide le 30 aout 2013

    - http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables/2e-methode-les-requetes-selection-multi-tables valide le 29 aout 2013

    - http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables/1ere-methode-les-requetes-imbriquees-ou-sous-requetes valide le 29 aout 2013

    - http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables valide le 29 aout 2013

    - Fonction pour autoriser seulement les nombres dans textbox [Résolu] - Forum du club des développeurs et IT Pro valide le 30 aout 2013

    - http://www.codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119.aspx valide le 30 aout 2013

    - http://didier-gonard.developpez.com/tutoriels/office/excel/obliger-saisie-numerique-dans-texbox/ valide le 30 aout 2013

    - http://codes-sources.commentcamarche.net/forum/affich-1617108-textbox-y-a-t-il-une-propriete-qui-autorise-seulement-la-saisie-numerique valide le 2 aout 2013

    - http://codes-sources.commentcamarche.net/forum/affich-922575-imprimer-avec-un-reportviewer-lie-a-un-rapport valide le 15 juillet 2013

    - http://social.msdn.microsoft.com/Forums/vstudio/fr-FR/a6c3a1e3-d1b9-48e9-aad3-d2029de6f158/imprimer-un-etat-paramtr-de-crystal-report-sous-visual-studio-2010 valide le 15 juillet 2013

    - http://morpheus.developpez.com/reseauvbnet/ valide le 15 avril 2013

    - http://codes-sources.commentcamarche.net/source/39697-connexion-a-une-base-de-donnees-sql-server-2005#q=Connexion+distante+%E0+sql+server+2005&cur=2&url=%2F valide le 15 avril 2013

    - http://codes-sources.commentcamarche.net/s/Connexion+distante+%E0+sql+server+2005?qlc#k=b38254c576bc27b6e71cb90ed84b8d8e valide le 15 avril 2013

    - http://codes-sources.commentcamarche.net/faq/644-connexion-distante-a-sql-server-2005 valide le 15 avril 2013

    - http://www.siteduzero.com/forum/sujet/vb-probleme-de-conversion-string-gt-int-61554 valide le 20 aout 2013

    - https://fr.wikipedia.org/wiki/Microsoft_SQL_Server valide le 12 janvier 2013

    - http://blogs.developpeur.org/christian/archive/2011/09/12/Prix-sql-server-en-france-pour-SQL-Server-2008-R2.aspx valide le 12 janvier 2013

    - http://www.siteduzero.com/forum/sujet/base-de-donnee-sql-server-sur-un-reseau-local-28386 valide le 12 juillet 2013

    - http://www.siteduzero.com/forum/sujet/partager-une-application-vb valide le 12 juillet 2013

    - http://codes-sources.commentcamarche.net/forum/affich-1406898-aide-pour-partager-une-base-de-donnee-sql-reseau-local valide le 12 juillet 2013

    - http://www.siteduzero.com/informatique/exportPdf/apprenez-a-programmer-en-vb-net valide le 05 septembre 2012

    - http://windows.microsoft.com/fr-xf/windows/connect-using-remote-desktop-connection#connect-using-remote-desktop-connection=windows-7 valide le 15 avril 2013

    - http://www.vbfrance.com/r/global.aspx?r=gestion+de+billetage valide le 05 mai 2013

    - http://www.vbfrance.com/codes/EXPORTER-VOS-DONNEES-SOUS-EXCEL-ENFIN-CODE-SIMPLE_3756.aspx valide le 16 juin 2013

    - http://www.vbfrance.com/recherche.aspx?r=Exporter+de+VB.Net+%e0+Excel&dotnet=0 valide le 16 juin 2013

    - http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/liaison-avec-le-code-vb-net valide le 16 juin 2013

    - http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/l-utilisation-graphique-le-datagrid valide le 16 juin 2013

    - http://www.commentcamarche.net/forum/affich-3948213-transfert-de-donnees-vb-net-vers-excel valide le 16 juin 2013

    - http://www.youtube.com/results?search_query=Connecter+le+dagrid+avec+Sql+server+en+vb.net&oq=Connecter+le+dagrid+avec+Sql+server+en+vb.net&gs_l=youtube.3...406786.427578.0.428596.57.51.1.3.3.0.3545.17124.12j19j5j3j1j4j6j9-1.51.0...0.0...1ac.1.11.youtube.QYtS3ARGW7s valide le 16 juin 2013

    - http://www.developpez.net/forums/d1163647/dotnet/edioutils/visual-studio/deploiement-application-windows-vbnet-avec-visual-studio/ valide le 01 juin 2013

    - http://www.siteduzero.com/informatique/tutoriels/visual-basic-net/la-decouverte-du-datagrid valide le 06 mars 2013

    Table des matières

    EPIGRAPHE 2

    IN MEMORIAM 3

    DEDICACE 4

    REMERCIEMENTS 5

    SIGLES ET ABREVIATIONS 6

    RESUME 7

    ABSTRACT 1

    0.0. Introduction générale 2

    0.1. Problématique 2

    0. 2. Hypothèse 3

    0.3. Choix et intérêt du sujet 4

    0.4. Etat de la question 4

    0.5. Délimitation du sujet 5

    0.6. Méthodes et techniques 6

    b. Les techniques 6

    07. Plan sommaire du travail 7

    0.8. Difficultés rencontrées 8

    Chapitre I : Généralités sur les bases de données et le VB.Net 9

    I.1. Notions de base 9

    I.1.1. Introduction 9

    I.1.2. Qu'est-ce qu'une base de données 9

    I.1.2. Avantage d'une base de données 10

    I.1.3. Caractéristiques d'une base de données 10

    I.1.4. Etapes de conception d'une base de données 11

    I.1.5. VB.Net et le SGBD 12

    Chapitre 2 : Description du système d'information existant au sein de la coopérative Nyalukemba 15

    2.1. Présentation 15

    2.1.1. Membres : adhésion, catégories, perte de la qualité 15

    2.1.2. Ressources financières de la COOPEC 16

    2.2. Fonctionnement des organes 16

    2.2.1. Assemblée générale 17

    2.2.2 Conseil d'Administration 18

    2.2.3. Conseil de Surveillance 18

    2.2.4. Commission de crédit 19

    2.2.5. La Gérance 19

    2.3. Description des documents utilisés 19

    2.3.2. Documents utilisés par le (la) caissier (ère) 19

    2.4. Logiciels existants au sein de la COOPEC 25

    2.5. Critiques du système informatique existant 26

    a) Critique des documents de gestion 26

    b) Critique des moyens matériels 27

    c) Critique des ressources humaines 27

    2.6. Proposition des solutions 28

    Chapitre 3 : La modélisation du système 29

    3.1. Pourquoi une méthode d'analyse ? 29

    3.2. La modélisation 29

    3.3. Aperçu sur la méthode MERISE 29

    3.4. Niveaux d'abstraction 30

    3.5. Le modèle conceptuelle de données (MCD) 30

    3.6. Détermination des entités 30

    3.7. Détermination des propriétés 32

    3.8. Détermination des relations 35

    3.9. Le dictionnaire des données 36

    3.10. Modèle Conceptuel de données (MCD) 37

    3.11. Le modèle logique des données relationnel (MLDR) 39

    3.12. Le modèle physique de données 40

    3.13. Transcription SQL du Modèle Physique des Données généré par l'utilitaire AnalyseSI 42

    3.14. Le diagramme relationnel généré par les contraintes de Microsoft SQL Server 45

    3.15. Le diagramme des requêtes de synthèse construit à partir de Microsoft visual Studio 2010 Professionnel 46

    3.16. Représentation des accès en réseau. 47

    Chapitre 4: Mise en place de l'architecture Client- Serveur pour la gestion d'une coopérative d'épargne et de crédit 50

    4.1. L'architecture matérielle 50

    4.2. Configuration du réseau local pour le partage de l'application 51

    4.3. Environnement de développement de l'application 53

    4.4. Les outils utilisés dans la conception 53

    4.5. Implémentation de la base de données 55

    4.6. Attacher la base de données dans le serveur SQL Server 56

    4.7. Guide utilisateur 57

    4.7.1. Etape d'installation 57

    4.7.2. Lancement de l'application 65

    Les codes sources 78

    Bibliographie 103

    * 1Hankerspace, www.siteduzero.com /visual basic.Net/ introduction sur les bases de données

    * 2 Franklin Roosevelt, Ex-Président Américain

    * 3 Georges GARDARIN, Bases de données, 5e tirage, éd. Eyrolles, 2003, p3

    * 4Encyclopédie CommentCaMarche/bdd/bddintro.htm

    * 5 http://laurent-audibert.developpez.com/cours-bd/

    * 6 www.unvrai.com/cours de base de données relationnelles/Jean Claude ARMICI validé le 12/11/2012 à 16h 15'

    * 7 Georges GARDARIN, Bases de données, 5e tirage, éd. Eyrolles, 2003,p.74

    * 8 www.siteduzero.com/visual-basic.Net/Les bases des données dernière mise à jour 29/09/2012

    * 9 Franklin Roosevelt, Ex-Président Américain

    * 10 http://www.vbfrance.com/forum/sujet-MODELISATION-UML-SON-IMPLEMENTATION-SUR-VB_916632.aspx

    * 11Encyclopédie informatique CommentÇaMarche.net

    * 12Prof. Dr. Saint-Jean DJUNGU, cours de Méthodes d'analyse en informatique, inédit, ISP/BUKAVU, G2IG, 2010 -2011, p. 14

    * 13KASELE W., Cours de conception des systèmes d'information, inédit, ISP/BUKAVU, L1 IG, 2011-2012

    * 14Idem

    * 15Idem

    * 16Jean-Luc BAPTISTE, Merise, guide pratique (modélisation des données et des traitements, langage SQL, ENI Editions, 2009, p.13

    * 17Prof. Sindano., Cours d'informatique de gestion, inédit, ISP/BUKAVU, L2 IG, 2012-2013

    * 18Jean-Luc BAPTISTE, Merise, guide pratique (modélisation des données et des traitements, langage SQL), ENI Editions, 2009, p.75

    * 19Idem

    * 20 http://codingly.com/2008/12/29/degage-sale-programmeur/

    * 21 http://www.siteduzero.com/tutoriel-3-346824-brancher-les-machines-la-couche-1.html

    * 22 http://fr.wikipedia.org/wiki/Microsoft_SQL_Server

    * 23 http://fr.wikipedia.org/wiki/Packet_Tracer

    * 24 http://support.microsoft.com/kb/914277/fr#method2






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand