rapport oncf

40
2

Upload: emsistlah

Post on 14-Jun-2015

506 views

Category:

Documents


10 download

DESCRIPTION

developement VB access et soild works , ingenieur master atie uhp francece projet est réalise par lahcen AIT ALI ? qui en détient les droits d'auteur , or c possible de me contacter pour avoir gratuitement ce document , [email protected] ; bon courage !!!

TRANSCRIPT

Page 1: RAPPORT  ONCF

2

Page 2: RAPPORT  ONCF

3

Je tiens à remercier vivement les responsables d’Office National

des Chemins de Fer en la personne de Mr. BELKBIR le Directeur de l’établissement maintenance de voitures et wagons au site de casa voyageurs a Casablanca ,notamment la Responsable de ressources Humaines Mme NOUR,d'avoir bien voulu m'accorder ce stage au sein de leur honorable établissement ;

Je remercie aussi tous les membres des services de

L’établissement maintenance de voitures et wagons de Casa-voyageurs de l’office pour l’accueil, la sympathie et l’aide qu’ils m’ont offerts pendant ce stage. Particulièrement, Mr. ERRANI, pour ses efforts et pour son aide précieuse pendant la réalisation de ce projet.

Je vaudrais également remercier Mr. HAROUSSI pour ses idées

et ses astuces pendent la réalisation des dessins industriels sur le SolidWorks 2008. J’adresse aussi l’expression de mon respect pour, Mr. ALAYOUBI, Mr. TARRAQ, Mr. HIMDI pour leur sympathie qui m’était une source d’encouragement.

J’espère que ce projet atteindra ses objectifs et je souhaite vivement satisfaire les ambitions du service d’établissement maintenance de voitures et wagons de Casa voyageurs par un travail accompli.

Page 3: RAPPORT  ONCF

4

Introduction générale .................................................................................4 Chapitre 1 : Présentation de l’office National de Chemins de Fer...…..6 Chapitre 2 : Analyse & conception..........................................................15 2.1) Définition du sujet................................................................................16 2.2) Approche technique…………………………………………………..18 2.3) Conception de la base de données……………………...…………….19 2.2.1) Règles de la gestion………………………………………………...19 2.2.2) Dictionnaire de données……………………………………………20 2.2.3) Schéma entité relationnelle ……………………………………………..20 Chapitre 3 : Réalisation……………………………………………….…22 3.1) Outils de développement……………………………………………..21 3.1.1) SGBD……………………………………………………………....20 3.1.2) Langage de programmation………………………………………...23 3.2) Logique d’enchaînement………………………………………….….24 3.3) Ecrans de l’application ………………………………………………25 3.4) Réalisation des Dessin industriels sur SolidWorks …………………. 31 Conclusion Annexe……………………………………………………………………33

Page 4: RAPPORT  ONCF

5

Dans le but de développer mon esprit de modélisation et de conception et

en vue d’approfondir mes connaissances informatiques, et grâce à la coopération

qui réunie L’EMSI avec les établissements et les entreprises marocaines, j’ai été

amené à réaliser ce stage de fin de la quatrième année au sein de L’ONCF dans

l’établissement de préparation de train de ligne.

L’objectif de mon stage est constitué de deux projets à réaliser :

D’abord réaliser les dessins industriels d’un essieu et d’un joint de vitre sur le

SolidWorks 2008

En suite la conception et développement d’une application qui facilitera la

gestion des situations des voitures et fourgons de l’office en utilisant comme

langage de programmation le Visual Basic et comme système de gestion de

bases de données l’Access.

Ce rapport comporte trois chapitres. Le premier est consacré à la Présentation de

l’ONCF plus particulièrement L’EMVW et ses activités. Le deuxième entame

les parties théoriques des deux projets. Enfin le troisième chapitre sera consacré

à la réalisation et la programmation du deuxième projet.

Page 5: RAPPORT  ONCF

6

PRESENTATION DE L’ONCF ET DE L’EMVW

Page 6: RAPPORT  ONCF

7

Présentation de l’Office National des Chemins de Fer 1. Historique :

Historiquement, la construction du réseau des chemins de fer du Maroc

remonte au début du 20éme siècle. En effet, les premières lignes construites à

voies de 0.6m ont été établies à partir de 1916, et ce n’est qu’on 1923 que la

construction des voies à écartement normale a été confiée à trois compagnies

concessionnaires privées, ces derniers partagèrent le trafic ferroviaire en

exploitant chacune la partie du réseau qui lui était concédée.

En 1963, le Maroc a décidé le rachat des concessions et la création de

l’Office National des Chemins de Fer qui est un établissement public à caractère

industriel et commercial doté de la personnalité civile et de l’autonomie

financière. Placé sous la tutelle du ministère du transport et de la marine

marchande.

Sur la scène internationale, le Maroc est membre de l’Organisation

Internationale du Trafic Ferroviaire qu’il s’agisse de marchandises ou de

voyageurs. De même, l’ONCF est membre actif de l’Union International des

Chemins de Fer, de l’Union Arabe des Chemins de Fer et du Comité du

Transport Ferroviaire Maghrébin.

L’ONCF emploi actuellement environ 10000 agents, gère et exploite un

réseau de 1907 Km de ligne dont 1537 Km à voie unique (80%) et 370 Km à

double voie. Ce réseau comporte également 528 Km de voies de service et 201

Km de lignes d’embranchement particulier reliant diverses entreprises au réseau

ferré national. A noter que 53% de la longueur du réseau est électrifiée à 3000

voltes continues, alors que 904 Km sont exploités en traction diesel.

Depuis sa création, l’ONCF joue un rôle majeure dans le transport des

voyageurs, marchandises et phosphates vu le savoir faire et l’expérience qu’il a

Page 7: RAPPORT  ONCF

8

dans le domaine et ce grâce à la capacité professionnelle requise. Cela signifie

que :

� L’ONCF possède des connaissances et de l’expérience qui lui permet

d’exercer le contrôle opérationnel et une surveillance sûre et efficace.

� Le personnel de l’ONCF chargé de la sécurité possède une qualification

adaptée à son domaine d’activité.

� Le personnel, le matériel roulant et l’organisation sont de nature à

permettre d’assurer un niveau de sécurité équivalent à celui des services

analogues en Europe.

Page 8: RAPPORT  ONCF

9

2. Organigrammes des pôles de l’ONCF :

ORGANIGRAMME GENERAL DU POLE MAINTENANCE MATERIEL :

Page 9: RAPPORT  ONCF

10

1. Services des AGEC

* Service technique

Groupe d’étude : a pour rôle :

Elaborer et suivre l’application des consignes rapportées par le conseil

d’étude ainsi que les règles d’entretien et de révision adopté par le service

technique. Elaboration des rapports trimestriels et annuels.

Service technique étude (STE) : a pour tâche :

Assurer les études techniques et les améliorations à apporter sur le

matériel. Elaborer des projets d’acquisition et de matériel de consommation.

Service technique approvisionnements : Il se charge de lancer les demandes

de matière auprès du magasin régional qui est en relation avec le magasin

général pour assurer le stock des pièces et matières nécessaires à l’entretien.

* Service gestion

La fonction gestion est d’une grande importance dans chaque entreprise

car elle permet de gérer et réguler le mouvement des produits tout le long du

cycle de fabrication, depuis la commande de la matière première jusqu'à la

livraison des produits finis.

* Service de production

Il a sous sa responsabilité le service programmation lancement et les quatre

ateliers d’entretiens.

Service programmation lancement : Son rôle consiste à :

Elaborer le programme des opérations de maintenance périodiques.

Lancement des bons de travail pour les ateliers.

Suivi du matériel à l’entrée et a la sortie.

Organiser les manœuvres au sein de l’établissement.

Expédition des pièces et organes envoyés par autres établissements

Page 10: RAPPORT  ONCF

11

2. PRESENTATION DE L’E.M.V.W

L’établissement maintenance de voitures et wagon de Casablanca a été

crée le 01-07-2009 après la réorganisation des établissements de la ONCF.

Son site est situé au boulevard BAHMAD entre l’EX. Usine de carneau et

la gare de Casa Voyageurs

ORGANISATION

L’établissement est organisé comme suit :

Établissement mère se trouve à CASA BLANCA et gère les centres

suivants:

� Centre Maintenance de voitures et fourgon de Marrakech.

� Centre Maintenance de voitures et fourgon de Fès.

ORGANIGRAME DE L’ETABLISSEMENT MAINTENANCE V W CASABLANCA

Page 11: RAPPORT  ONCF

12

MISSION DE L’EMVW CASA

L’Établissement maintenance voitures et wagon Casa a pour missions :

• Maintenance du parc:

⇒ Élaborer et mettre en œuvre le plan de maintenance en tenant compte

de la politique de maintenance définie au niveau du Département Matériel et

Exploitation Voyageurs.

⇒ Définir les besoins en pièces de rechange et gérer le stock.

• Gestion des ressources Humaines :

⇒ Assurer la gestion prévisionnelle des ressources humaines

⇒ Rationaliser l’affectation des ressources

⇒ Administrer les Ressources Humaines

⇒ Participer à l’élaboration du plan de formation

• Comptabilité et Gestion :

⇒ Élaborer le budget d’exploitation et suivre son exécution

⇒ Établir la comptabilité de l’établissement

⇒ Établir et analyser le tableau de bord de l’établissement

⇒ Assurer les achats locaux

Politique de la maintenance Définition: La maintenance est l’ensemble des actions qui permettent d’assurer un

entretien préventif pour maintenir sa fiabilité.

La maintenance se présente en deux niveaux:

• 1er niveau : VA.

• 2ème niveau : VL, VG, VF, ATS.

• 3ème niveau : GVG, RL, RG, GRG

Page 12: RAPPORT  ONCF

13

OBJECTIFS DE L’ENTRETIEN PREVENTIF L’entretien préventif du matériel est réalisé pour atteindre

en service les objectifs fondamentaux :

� de sécurité

� de fiabilité

� de qualité

� d’économie

Parc du matériel remorqué à voyageurs Le parc du matériel remorqué à voyageurs est composé à ce jour de 322 Véhicules : 222 voitures climatisées: 162 Voitures 2ème classe 33 Voitures 1ére classe 16 Voitures buvettes 2ème classe 06 Voitures couchettes 05 Voitures Lits Voitures ordinaires SNCF: 34 fourgons générateurs : 12 FG 3ème série 16 FG 4ème série 06 FG 5ème série

Préventive

Systématique

Maintenance

Corrective

Conditionnelle

Page 13: RAPPORT  ONCF

14

Page 14: RAPPORT  ONCF

15

Page 15: RAPPORT  ONCF

16

2.1 Définition du sujet Travail demandé

L'EMVW souhaite se doter des moyens informatiques pour gérer ses

différentes activités. Dans le cadre du stage d’été, on m’a confié dans un premier

temps la réalisation des dessins industrielle d’un essieu puis d’un joint de vitre

sur le logiciel SolidWorks 2008 , puis dans un deuxième temps la mission de la

mise au point d’une application informatique qui permettra la gestion moderne

et efficace des situations de voitures et fourgons de l’office, est donc les

procédures d’enregistrements des nouvelles situations effectuée aux services de

l’EMVW, les mises à jours sur les situation suite aux éventuels changements et

la gestion des trafics ,ainsi qu’effectuer des recherches pour des situations par le

billet de leurs dates et finalement exporter tout situation vers un classeur Excel.

1. Besoin

Le responsable des situations des voitures et fourgons du bureau

technique a proposé de crée un outil informatique pour facilité les tâches qu’il

effectue régulièrement sur son ordinateur. Ces tâches consistent en la saisie des

données, les modifier, la génération d’un rapport sur un document Microsoft

Excel. Le travail avec les documents Microsoft Excel ne permet pas d’effectuer

plusieurs tâches facilement et rapidement, tel que :

Le stockage des données

La recherche rapide des informations

Génération rapide de rapports

En effet l’idée consiste à la création d’une application liée à une base de données.

Cette application va automatiser toutes les tâches effectuées par l’agent

responsables.

Page 16: RAPPORT  ONCF

17

Page 17: RAPPORT  ONCF

18

2.2 Approche technique

A partir de l’analyse précédente, on constate qu’on est face à un problème

l’implémentation d’un logiciel de gestion, ce qui nécessite avant tout

l’implémentation d’une base de données pour pouvoir stocker toutes les

informations relatives aux éléments à gérer, et pour pouvoir représenter ces

informations sous une forme simple à manipuler, à rechercher et à mettre à jour

facilement.

Pour développer cette application j’ai décidé de procéder suivant les

processus schématisés dans la figure ci-dessous :

Page 18: RAPPORT  ONCF

19

Identification des besoins : ce processus est déterministe dans l’ensemble

du projet, il représente la phase initiale qui détermine le niveau de succès ou

d’échec de l’application, donc il exige une grande précision et il doit être traité

d’une façon très attentive.

Elaboration de l’application : ce processus consiste principalement dans le

développement d’un modèle logique des données, puis à la détermination des

outils de développement de l’application.

Création de l’interface : le but de ce processus est de fournir une interface

cohérente de l’application.

2.3 Conception de la base de données

2.3.1 Règles de la gestion

Chaque situation comme vue précédemment se compose de quartes tables,

la première pour la composition de chaque train de ligne en matière de FG et

voitures d’où l’identifiant qui doit être le code du train a composé, deuxièmes

d’une table nommée Disponibles formée de trois champs : climatisées, FG et PV,

troisièmement d’une table dite Reformes dont les champs sont :N° Véhicule,

lieu, date, prévision de sortie et motif ;la dernière table de la base de donnée est

bien la table Répartition qui aura comme attributs : Expédiés , a-expédier, et

Reçues ,

Page 19: RAPPORT  ONCF

20

2.3.2 Dictionnaire de données

Le tableau suivant récapitule l’ensemble des données qui seront

manipulées dans cette application, et contient leurs définitions et désignations

Champs Désignation Type Observation

TRAIN Train Texte alphanumérique

JOURNNEE journées Date/Heure

FG fourgon Numérique

COMPOSITION composition Texte

FG fourgon Numérique

CLIMATISEES climatisées Texte

PV pv Texte

NUMVH numéro de voiture Numérique

DATE date Date/Heure

LIEU lieu Texte

MOTIF motif Texte

PDS Prévision de sortie Date/Heure

RECUES reçues Texte

AEXPEDIER A expédier Texte

EXPEDIEES expédiées Texte

2.3.3 Schéma entité relation

La relation entre les entités définies dans le dictionnaire ci-dessus, en plus

des règles ont permis de construire le MCD (Modèle Conceptuel des Données).

En effet, le MCD représente la structure logique globale de la base de données,

indépendamment du logiciel ou de la structure de stockage des données. Il

Page 20: RAPPORT  ONCF

21

contient toujours des données qui ne sont pas encore mises en œuvre dans la

base de données physique et il constitue une représentation formelle des données

nécessaires au fonctionnement de l’application.de la gestion,

Ce modèle permettra de générer le modèle physique de données, et donc

de créer la base de données sur le SGBD convenable.

Le modèle physique généré respectant les contraintes de dépendance de données (Dépendance fonctionnelle) est le suivant:

Page 21: RAPPORT  ONCF

22

Page 22: RAPPORT  ONCF

23

3.1 Outils de développement 3.1.1 Système de gestion de base de données :

Pour créer la base de données j’ai utilisé le système de gestion de bases de

données Microsoft Access qui est un SGBD relationnel sous Windows. Il est

caractérisé par sa capacité de pouvoir combiner l’interface graphique avec les

fonctionnalités d’un SGBDR. Il permet toutefois d’afficher des informations sur

les dépendances entre les objets d'une base de données et de vérifier

automatiquement les erreurs courantes dans les formulaires et les états.

3.1.2 Langage de programmation :

Cette application a été développée l’aide du langage Visual Basic c’est un

langage très performant, doté d’une interface graphique simple à utiliser et à

programmer. Visual Basic représente aujourd’hui un outil de développement

extrêmement puissant, tout en étant d’une grande simplicité d’utilisation, il n’a

plus à régresser devant des langages bien structurés comme Visual C ou Visual

C++. Il permet même d’effectuer des opérations facilement et rapidement que

ces derniers. C’est en fait le seul vrai langage de programmation que les

amateurs de la programmation peuvent apprendre rapidement.

Visual Basic offre une excellente plate forme de développement rapide

des applications. Il permet également de créer très vite des solutions adaptées

aux besoins en matière de gestion.

Page 23: RAPPORT  ONCF

24

3.2 Logique d’enchaînement : L’application démarre avec un premier écran de Menu. A partir de ce

dernier, on peut basculer vers les écrans des mises à jour sur les tables,

Composition, Reformées, Répartition et, ou faire des éditions (liste de la

situation sous forma de Microsoft Excel) a partir de menu on peu évidement

faire une recherche d’une situation donnée selon la date de sa création . La

fermeture d’un écran passe la main à l’écran Menu. La fermeture de l’écran

Menu met fin à l’application.

Le schéma suivant explique l’ordre entre les différents écrans de l’application :

Page 24: RAPPORT  ONCF

25

3.3 Ecrans de l’application :

Le Menu :

Cette forme est le point de départ de l’application, elle permet grâce au

menu d’accéder aux autres fenêtres de l’application mais également l’impression

des états relatifs aux données de l’application.

Ecran sur la table Composition :

Cette fenêtre permet la consultation de la base pour s’informer sur les

données de la composition d’un train ou de la modifier en la sélectionnant

Page 25: RAPPORT  ONCF

26

depuis la List en tète de l’écran, d’ajouter des nouvelles situations dans la base

et enfin de les supprimer si c’est nécessaire.

Sur la même écran je propose a l’utilisateur le choix de la date a partir

d’un calendrier qui s’affiche une fois il click sur le bouton de choix, la même

méthode est aussi appliquée pour les choix du train et du fourgons.

Page 26: RAPPORT  ONCF

27

L’écran de la table Disponibles :

Page 27: RAPPORT  ONCF

28

A partir de cette fenêtre, on peut consulter les voitures et fourgon

disponibles d’ajouter un enregistrement à la table Disponibles, de le modifier ou

de le supprimer de la table des Disponibles.

L’écran de la table Reformés:

A partir de cette fenêtre, on peut consulter les voitures reformés, d’ajouter

un enregistrement à la table Reformés, de le modifier ou de le supprimer de la

table des Reformés.

L’écran de la table Répartition:

A partir de cette fenêtre, on peut consulter les voitures et selon leurs

répartition, d’ajouter un enregistrement à la table Répartition, de le modifier ou

de le supprimer de la table Répartition si nécessaire.

Page 28: RAPPORT  ONCF

29

L’écran de la table Recherche:

A partir de cette fenêtre, on peut consulter a la fois la situation de la

voiture et FG a partir de la date de création de cette situation, et dans un temps

future l’importation de cette situation vers un fichier Excel afin de pouvoir

l’imprimer.

L’écran a propos de l’application (?) :

Page 29: RAPPORT  ONCF

30

3.4) Réalisation des Dessins industriels sur SolidWorks

Essieu

Page 30: RAPPORT  ONCF

31

Joint de vitre

Page 31: RAPPORT  ONCF

32

Au terme de ce stage, j’ai pu réaliser une application permettant la gestion

moderne des Situations de voiture et fourgons effectuée au sein du site de

l’EPTLC de l’ONCF situé a la gare de casa voyageurs, j’ai aussi pratiqué mes

connaissances informatique et mécaniques au niveau du dessin industriel sous

SolidWorks 2008.

Certes, cette application n’est pas complète à cent pour cent. Toutefois ce

stage de la fin de ma quatrième année en cycle ingénieur de l’EMSI que j’ai

entrepris au sein de EPTLC, qui deviendra dés aout 2009 EMVW comme

abréviation de l’Etablissement de Maintenance de Voitures et Wagons, ma

permis :

La découverte de l’environnement professionnel dans une direction de

haut niveau.

La participation active dans la réalisation et l’exécution des plusieurs

taches reliées a l’informatique que sa soit hardware ou software.

L’aide dans la motivation et l’encadrement de quelques stagiaires.

Le perfectionnement de mes connaissances en matière d'usage combiné

d'un gestionnaire de bases de données comme Microsoft Access, et le

Visual Basic 6.0 en tant qu'interface conviviale à manipuler.

L’approfondissement et mise en cause de mes compétences mécanique

plus particulièrement en matière de dessin industriel sur calque et sur

SolidWorks 2008.

L’apprentissage de quelques techniques de maintenance corrective et

préventive dans le domaine électronique avec Mr. Hrakate

Page 32: RAPPORT  ONCF

33

Finalement, on doit s’interroger sur la fiabilité à moyen et à long terme, et

aux éventuelles mises à jours sur l’application par l’usage d’autres

technologies, SGBD et plates formes plus performantes qu’aux précédentes.

Page 33: RAPPORT  ONCF

34

Voici dans ce qui suit une partie du programme utilisé pour une mise à

jour sur les tables Composition et Reformés, ainsi que le Menu.

Option Explicit Dim dbAdo As New Connection Dim cmAdo As New Command Dim rsAdo As New Recordset Private Sub Command1_Click() Form2.Show Unload Dialog End Sub Private Sub Command2_Click() Form1.Show Unload Dialog End Sub Private Sub Command3_Click() End End Sub Private Sub Command4_Click() Form3.Show Unload Dialog End Sub Private Sub Command5_Click() Form4.Show Unload Dialog End Sub Private Sub Command6_Click() frmAbout.Show Unload Dialog

Page 34: RAPPORT  ONCF

35

End Sub Private Sub Command7_Click() Form5.Show Unload Dialog End Sub ************************************************** *********** Option Explicit Dim dbAdo As New Connection Dim cmAdo As New Command Dim rsPrm As New Parameter Dim rsAdo As New Recordset Dim chgt As Boolean Private Sub cboNom1_Click() ' Si l'ajout d'une personne, efface les zones de texte If cboNom1.ListIndex = 0 Then Dim ctr As Control For Each ctr In Me.Controls If TypeOf ctr Is TextBox Then ctr.Text = "" Next Exit Sub End If ' Si la table est vide, sort de la sub If rsAdo.EOF And rsAdo.BOF Then Exit Sub ' Recherche le nom selectionné ' Recharge le recordset rsAdo.Requery ' recherche rsAdo.Find ("FG = " & cboNom1.ItemData(cboNom1.ListIndex)) ' Controle que l'enregistrement existe toujours If rsAdo.EOF Xor rsAdo.BOF Then MsgBox "l'enregistrement selectionné n'existe plus dans la base" chargeListe Exit Sub End If Combo1 = rsAdo!FG Text1 = rsAdo!CLIMATISEES Text3 = rsAdo!PV chgt = False End Sub Private Sub cboNom1_GotFocus()

Page 35: RAPPORT  ONCF

36

subChange "Changement de FG" End Sub Private Sub cboNom1_Validate(Cancel As Boolean) If chgt Then Stop End Sub Private Sub cmdEnregistrer_Click() If cboNom1.ListIndex = 0 Then rsAdo.AddNew rsAdo!FG = IIf(Combo1 = "", "?", Combo1) rsAdo!CLIMATISEES = IIf(Text1.Text = "", "?", Text1.Text) rsAdo!PV = IIf(Text3.Text = "", "?", Text3.Text) rsAdo.Update End Sub Private Sub cmdSupprimer_Click() ' Recherche si l'enregistrement est toujours valide ' Cas d'une base multi-utilisateur rsAdo.Requery rsAdo.Find ("FG= " & cboNom1.ItemData(cboNom1.ListIndex)) If rsAdo.EOF = rsAdo.BOF Then rsAdo.Delete Else MsgBox "Enregistrement déja supprimé" End If chargeListe End Sub private Sub Command1_Click() Dialog.Show Unload Form1 dbAdo.Close End Sub Private Sub Form_Load() Combo1.AddItem "994" Combo1.AddItem "981" Combo1.AddItem "983" Combo1.AddItem "986" Combo1.AddItem "956" ' Ouverture connexion With dbAdo

Page 36: RAPPORT  ONCF

37

.Provider = "Microsoft.Jet.OLEDB.4.0" ' Fournisseur d'accès .Mode = adModeReadWrite ' Mode lecture écriture .CursorLocation = adUseClient ' Type de curseur ( .Open App.Path & "\testado.mdb" End With ' Création recordset With rsAdo .CursorType = adOpenKeyset .LockType = adLockOptimistic .ActiveConnection = dbAdo .Open "DISPONIBLES" End With chargeListe End Sub Public Sub chargeListe() ' Remplissage de la liste rsAdo.Requery ' recharge le recordset cboNom1.Clear ' Efface la combo cboNom1.AddItem "... Ajouter un Enregistrement", 0 Do Until rsAdo.EOF ' Parcour du recordset pour charger la combo cboNom1.AddItem rsAdo!FG & " , " & rsAdo!CLIMATISEES & " , " & rsAdo!PV cboNom1.ItemData(cboNom1.NewIndex) = rsAdo!FG ' Intègre la clé primaire rsAdo.MoveNext Loop cboNom1.ListIndex = 0 ' Positionne la combo sur le 1er item chgt = False End Sub Private Sub Form_Unload(Cancel As Integer) subChange "Fermeture" End Sub Private Sub Combo1_KeyPress(KeyAscii As Integer) chgt = True End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) chgt = True End Sub

Page 37: RAPPORT  ONCF

38

Private Sub Text3_KeyPress(KeyAscii As Integer) chgt = True End Sub Public Sub subChange(Optional origine As String) If chgt Then If MsgBox("Données changées." & vbCrLf & "Enregistrer ?", vbYesNo, origine) = vbNo Then Exit Sub cmdEnregistrer_Click End If End Sub *************************************************** ***** Option Explicit Dim dbAdo As New Connection Dim cmAdo As New Command Dim rsPrm As New Parameter Dim rsAdo As New Recordset Dim chgt As Boolean Private Sub cboNom2_Click() ' Si l'ajout d'une personne, efface les zones de texte If cboNom2.ListIndex = 0 Then Dim ctr As Control For Each ctr In Me.Controls If TypeOf ctr Is TextBox Then ctr.Text = "" Next Exit Sub End If ' Si la table est vide, sort de la sub If rsAdo.EOF And rsAdo.BOF Then Exit Sub ' Recherche le nom selectionné ' Recharge le recordset rsAdo.Requery ' recherche rsAdo.Find ("NUMVH = " & cboNom2.ItemData(cboNom2.ListIndex)) ' Controle que l'enregistrement existe toujours If rsAdo.EOF Xor rsAdo.BOF Then MsgBox "l'enregistrement selectionné n'existe plus dans la base" chargeListe Exit Sub End If Text1 = rsAdo!NUMVH

Page 38: RAPPORT  ONCF

39

DateP = rsAdo!Date Text3 = rsAdo!LIEU Text4 = rsAdo!MOTIF DateP1 = rsAdo!PDS chgt = False End Sub Private Sub cboNom2_GotFocus() subChange "Changement de nom" End Sub Private Sub cboNom2_Validate(Cancel As Boolean) If chgt Then Stop End Sub Private Sub cmdEnregistrer_Click() If cboNom2.ListIndex = 0 Then rsAdo.MoveFirst rsAdo.Find ("NUMVH = " & cboNom2.ItemData(cboNom2.ListIndex)) If rsAdo.EOF <> rsAdo.BOF Then Exit Sub rsAdo("NUMVH") = IIf(Text1.Text = "", "?", Text1.Text) rsAdo("DATE") = IIf(DateP = "", "?", DateP) rsAdo("LIEU") = IIf(Text3.Text = "", "?", Text3.Text) rsAdo("MOTIF") = IIf(Text4.Text = "", "?", Text4.Text) rsAdo("PDS") = IIf(DateP1 = "", "?", DateP1) rsAdo.Update End If chargeListe End Sub Private Sub cmdSupprimer_Click() ' Recherche si l'enregistrement est toujours valide ' Cas d'une base multi-utilisateur rsAdo.Requery rsAdo.Find ("NUMVH= " & cboNom2.ItemData(cboNom2.ListIndex)) If rsAdo.EOF = rsAdo.BOF Then rsAdo.Delete Else MsgBox "Enregistrement déja supprimé" End If chargeListe End Sub

Page 39: RAPPORT  ONCF

40

Private Sub Command1_Click() Dialog.Show Unload Form3 dbAdo.Close End Sub Private Sub Form_Load() ' Création recordset With rsAdo .CursorType = adOpenKeyset .LockType = adLockOptimistic .ActiveConnection = dbAdo .Open "REFORMES" End With chargeListe End Sub Public Sub chargeListe() ' Remplissage de la liste rsAdo.Requery ' recharge le recordset cboNom2.Clear ' Efface la combo cboNom2.AddItem "... Ajouter un Enregistrement", 0 Do Until rsAdo.EOF ' Parcour du recordset pour charger la combo cboNom2.AddItem rsAdo!NUMVH & " , " & rsAdo!Date & " , " & rsAdo!LIEU & " , " & rsAdo!MOTIF & " , " & rsAdo!PDS cboNom2.ItemData(cboNom2.NewIndex) = rsAdo!NUMVH ' Intègre la clé primaire rsAdo.MoveNext Loop cboNom2.ListIndex = 0 ' Positionne la combo sur le 1er item chgt = False End Sub Private Sub Form_Unload(Cancel As Integer) subChange "Fermeture" End Sub Private Sub DateP_KeyPress(KeyAscii As Integer) chgt = True End Sub

Page 40: RAPPORT  ONCF

41

Private Sub Text1_KeyPress(KeyAscii As Integer) chgt = True End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) chgt = True End Sub Private Sub DateP1_KeyPress(KeyAscii As Integer) chgt = True End Sub Private Sub Text3_Change() End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) chgt = True End Sub Public Sub subChange(Optional origine As String) If chgt Then If MsgBox("Données changées." & vbCrLf & "Enregistrer ?", vbYesNo, origine) = vbNo Then Exit Sub cmdEnregistrer_Click End If End Sub Icône utilisée pour le logiciel : j’ai réalisé cette icône a l’aide du logiciel XARA3DX6