COURS DE VB

download COURS DE VB

of 97

Transcript of COURS DE VB

Support de Cours

Visual Basic

SOMMAIRE.1.PROGRAMMATION ORIENTEE OBJET.................................................................4.1.1. Dfinition........................................................................................................................................................4 .1.2. Encapsulation.................................................................................................................................................4 .1.3. Classe et hritage............................................................................................................................................5 .1.4. Polymorphisme...............................................................................................................................................5

.2.L'ENVIRONNEMENT DE VISUAL BASIC...............................................................5 .3.LE LANGAGE DE PROGRAMMATION...................................................................7.3.1. Les variables et les constantes......................................................................................................................7 .3.1.1. Dclaration des variables.........................................................................................................................7 .3.1.2. Porte des variables.................................................................................................................................8 .3.1.3. Dclarations des constantes ....................................................................................................................8 .3.2. Les tableaux de valeurs..................................................................................................................................8 .3.3. Dclaration type............................................................................................................................................10 .3.4. Les lments du langage...............................................................................................................................11 .3.5. Procdures et Fonctions ..............................................................................................................................13 .3.5.1. Structure d'une procdure .....................................................................................................................13 .3.5.2. Structure d'une fonction ........................................................................................................................14 .3.5.3. Les procdures et fonctions Property....................................................................................................14 .3.5.4. Dfinitions des arguments ....................................................................................................................15 .3.5.5. Appel de procdures .............................................................................................................................15 .3.6. Fonctions, Instructions et Oprateurs de Visual Basic.............................................................................16 .3.6.1. Chanes de caractres.............................................................................................................................16 .3.6.2. Fonctions mathmatiques......................................................................................................................16 .3.6.3. Fonctions Financires............................................................................................................................16 .3.6.4. Date et heure .........................................................................................................................................16 .3.6.5. Oprateurs Logiques et tests .................................................................................................................17 .3.6.6. Tableaux ................................................................................................................................................17 .3.6.7. Conversions............................................................................................................................................17 .3.6.8. Gestion des disques et rpertoires.........................................................................................................17 .3.6.9. Gestion des fichiers ...............................................................................................................................17 .3.6.10. Gestion des erreurs...............................................................................................................................17 .3.6.11. Interactive Windows/Utilisateur..........................................................................................................17 .3.6.12. Dclarations et Structures de programmation.....................................................................................18

.4.LES OBJETS DE VISUAL BASIC..........................................................................19.4.1. Les feuilles de Visual Basic .........................................................................................................................19 .4.1.1. Les feuilles Standards............................................................................................................................19 .4.1.2. Les feuilles MDI....................................................................................................................................24 .4.1.3. Les botes de saisie et de Message........................................................................................................25 .4.2. Les contrles standards de Visual Basic ...................................................................................................26 .4.2.1. Les tiquettes.........................................................................................................................................27 .4.2.2. Les champs de saisie..............................................................................................................................27

Professeur: ASSALE Adj Louis

1/97

INP-HB

Support de Cours

Visual Basic

.4.2.3. Les boutons de commande ...................................................................................................................28 .4.2.4. Bouton doption ....................................................................................................................................28 .4.2.5. Exercice1 ................................................................................................................................................29 .4.2.6. Les cases cocher .................................................................................................................................29 .4.2.7. Les listes ................................................................................................................................................30 .4.2.8. Exercice2 ................................................................................................................................................32 .4.2.9. Les barres de dfilement........................................................................................................................33 .4.2.10. Le contrle Minuterie..........................................................................................................................33 .4.2.11. Les contrles donnes ou contrles DATA.........................................................................................33 .4.2.12. Les contrle DBList, DBCombo et DBGrid.......................................................................................35 .4.2.13. Exercice3..............................................................................................................................................36

.5.GESTION DES FICHIERS......................................................................................36.5.1. Fichiers squentiels.......................................................................................................................................36 .5.1.1. Ecriture...................................................................................................................................................36 .5.1.2. Lecture...................................................................................................................................................37 .5.2. Les fichiers accs direct............................................................................................................................37 .5.2.1. Ouverture................................................................................................................................................37 .5.2.2. Lecture et criture denregistrements....................................................................................................38 .5.3. Les fichiers binaires......................................................................................................................................38 .5.4. Exercice ..........................................................................................................................................................39

.6.GESTION DES OBJETS........................................................................................39.6.1. Variables Objets............................................................................................................................................39 .6.1.1. Dclaration de variables objets et de nouvelle instance avec New......................................................40 .6.1.2. Types dobjets dans les listes de paramtres.........................................................................................40 .6.1.3. Utilisation des variables objets..............................................................................................................40

.7.ACCES AUX BASES DE DONNEES.....................................................................41.7.1. Le Modle DAO............................................................................................................................................42 .7.1.1. Le stockage de donnes.........................................................................................................................43 .7.1.2. La manipulation de donnes..................................................................................................................44 .7.2. Le modle RDO.............................................................................................................................................47 .7.2.1. Dfinition dune source de donnes ODBC..........................................................................................47 .7.2.2. Le Composant Activex RDO 2.0 (MSRDC).........................................................................................48 .7.2.3. Programmation dobjets RdoConnection..............................................................................................50 .7.3. Le modle ADO.............................................................................................................................................55 .7.3.1. Le Control ADODC...............................................................................................................................55 .7.3.2. Programmation en ADO........................................................................................................................62 .7.3.3. Le concepteur Data Environment..........................................................................................................64 .7.3.4. La cration dtats (Data Report)..........................................................................................................73

.8.QUELQUES CONTRLES UTILES.......................................................................75.8.1. La boite de dialogue commune CommonDialog........................................................................................75 .8.2. Les contrles du groupe Microsoft Windows Common Controls...........................................................77 .8.2.1. ImageList...............................................................................................................................................77 .8.2.2. TreeView................................................................................................................................................78 .8.2.3. ListView.................................................................................................................................................80 .8.2.4. StatusBar................................................................................................................................................81

Professeur: ASSALE Adj Louis

2/97

INP-HB

Support de Cours

Visual Basic

.8.2.5. ToolBar..................................................................................................................................................82 .8.2.6. ProgressBar............................................................................................................................................84 .8.3. Le contrle SSTab (pages onglets)...........................................................................................................84

.9.OLE AUTOMATION................................................................................................84.9.1. Excel...............................................................................................................................................................85 .9.2. Word...............................................................................................................................................................87

.10.SYSTEME DE FICHIERS DAIDE........................................................................88.10.1. Cration du fichier de rubrique daide....................................................................................................89 .10.2. Construction dun fichier de projet..........................................................................................................91 .10.2.1. Cration dun nouveau projet daide...................................................................................................91 .10.2.2. Cration de la table des matires.........................................................................................................93 .10.2.3. Ajout de fentres secondaires..............................................................................................................95 .10.3. Ajout daide une application..................................................................................................................96 .10.3.1. La proprit HelpFile...........................................................................................................................96 .10.3.2. Le contrle CommonDialog................................................................................................................96

Professeur: ASSALE Adj Louis

3/97

INP-HB

Support de Cours

Visual Basic

VISUAL BASICVISUAL Basic est un langage de programmation orient objet, visuel et vnementiel : Orient objet car VB manipule des objets et utilise le principe de la programmation orient objet. Visuel car les objets manipuls sont visuels. Il suffit d'un click de la souris pour les dessiner. Evnementiel car les objets manipuls peuvent tre sollicit par des vnements.

.1.

PROGRAMMATION ORIENTEE OBJET.1.1. Dfinition

La POO est un ensemble de concepts thoriques, indpendants de tout langage particulier de programmation, qui permettent de modliser les "objets" du monde rel (clients, fournisseurs, etc.) et les traitements que l'on fait sur ces objets. La POO a pour but de dfinir les objets du monde rel par le biais d'entit programmatiques. On essai donc ici de transplanter en un langage de programmation des objets issus d'une rflexion plus abstraite. Un objet est en fait une association de donnes et des procdures agissant sur ces donnes. Ainsi l'on dfinit l'quation de la POO comme : Mthodes + Donnes = objet Un objet "connat " sa taille et sa position, sait comment se modifier luimme. L'objet est capable de grer sa propre reprsentation l'cran car il englobe des fonctions de dessin prvu pour cela. Sous l'interface graphique Windows, une fentre apparat comme un objet. On peut modifier sa position, sa taille, et son allure, de plus elle ragit de telle ou telle faon aux clicks sur la barre de titre, etc. .1.2. Encapsulation

Professeur: ASSALE Adj Louis

4/97

INP-HB

Support de Cours

Visual Basic

L'Encapsulation des donnes est le fait qu'il n'est possible d'agir directement sur les donnes d'un objet ; il est ncessaire de passer par l'intermdiaire de ses mthodes qui jouent ainsi le rle d'interface obligatoire. L'objet se prsente alors comme une espce de "bote noire" dont on sait qu'elle fait certaines choses, sans savoir comment ces choses l sont implmentes en interne. .1.3. Classe et hritage En POO apparat le concept de classe qui est une gnralisation de la notion de type que l'on rencontre dans les langages classiques. Une classe, en effet, n'est rien d'autre que la description d'un ensemble d'objets ayant une structure de donnes commune et disposant des mmes mthodes. Les objets apparaissent alors comme des variables d'un tel type classe ; on dit aussi qu'un objet est une instance de sa classe. L'hritage permet de dfinir une nouvelle classe existante, laquelle on ajoute de nouvelles donnes et de nouvelles mthodes. La conception de la nouvelle classe, qui hrite des proprits et des aptitudes de l'ancienne, peut aussi s'appuyer sur des ralisations antrieures parfaitement au point et les "spcialiser" volont. .1.4. Polymorphisme C'est la facilit de donner le mme nom des mthodes. Cela devient intressant lorsque plusieurs mthodes membres d'une mme classe sont dfinies de manire diffrente, mais portent le mme nom. A l'appel de la mthode, le polymorphisme offre un mcanisme qui permet de choisir la mthode correspondant l'objet.

.2.

L'ENVIRONNEMENT DE VISUAL BASIC

VISUAL BASIC se prsente comme toute application Windows avec en haut une barre de menue surmonte d'une barre de titre. Juste en dessous on a une barre d'outils partir de laquelle les principales options des menus sont directement accessibles. A gauche se trouve la bote outils qui contient les diffrents contrles qui serviront dessiner notre interface.

Professeur: ASSALE Adj Louis

5/97

INP-HB

Support de Cours

Visual Basic

Au centre, un objet feuille (form en anglais) qui sera le support de notre interface. Les contrles seront poss sur la feuille. Remarque quon peut crer autant de feuille qu'on le souhaite. Sur la droite on trouve la fentre de projet qui contient la liste de tous les fichiers utiliss dans l'application en cours. Pour une feuille on peut activer les boutons feuille pour afficher la feuille correspondante ou le fichier ou le code pour afficher l'diteur servant la saisie du programme. La feuille des proprits affiche l'ensemble des proprits que possde le contrle actuellement slectionn ou dfaut la feuille active. Dans le cas o plusieurs contrles seraient slectionns, seules les proprits qu'ils ont en commun sont montres. La touche F4 permet de l'afficher ou au contraire de la masquer. PROGRAMMER EN VISUAL BASIC C'EST : D'abord dessiner l'interface graphique en cliquant sur le contrle de la bote outils et en le dposant sur la feuille qui sert de support d'interface. Ecrire ensuite le code dans les modules ou dans les fonctions et procdures fournies pour chaque objet. Ces fonctions et procdures constituent pour l'objet l'ensemble des vnements pouvant le solliciter.Professeur: ASSALE Adj Louis 6/97 INP-HB

Support de Cours

Visual Basic

Chaque objet a : Des proprits modifiables telles la couleur d'un texte des mthodes qui agissent sur l'objet telles afficher ou ouvrir une fentre des vnements qui le sollicitent tel le click sur le bouton de la souris Ces actions se dfinissent dans un code l'aide d'un langage de programmation.

.3.

LE LANGAGE DE PROGRAMMATION

Il sert crire du code, il utilise l'instar des autres langages, des variables, des constantes, des objets et des structures de contrle. .3.1. Les variables et les constantes En Visual Basic, on distingue plusieurs types de variables : La catgorie nombres entiers comprend Byte (1 Octet valeur de 0 255), Boolean (2 Octets valeur True ou False), Integer (2 Octets valeur de 32768 32767) et Long Integer (4 Octets). La catgorie nombres virgule flottante Single (4 Octets), Date (8 Octets), Double (8 Octets) et Currency (jusqu 15 positions entires et 4 dcimales). Les chanes de caractres String (dune longueur denviron 2 milliards de caractres), le type Variant qui est un type non explicit la dclaration et qui peut tre lun des types prcdents et enfin Le type Object qui comprend des feuilles et des lments de commande. .3.1.1. Dclaration des variables.

Pour une feuille elle s'effectue dans la partie dclaration du code. Pour y accder on clique sur le bouton d'une feuille (ou fichier ) dans la fentre de projet ou un double clique sur le code pour afficher une fentre qui comporte deux listes droulantes : Celle de gauche, la liste objet comprend l'ensemble des objets dfinis par l'utilisateur sur la feuille slectionne. Et celle de droite la liste de procdures comprend l'ensemble vnements qui peuvent solliciter un objet choisi dans la liste objet. Pour dclarer des variables on choisit (Gnral) dans la liste objet et (dclarations) dans la liste Procdures.

Professeur: ASSALE Adj Louis

7/97

INP-HB

Support de Cours

Visual Basic

La syntaxe de dclaration est la suivante [ AS la classe dallocation peut prendre les valeurs suivantes : Dim - Static Private - Public .3.1.2. Porte des variables

si une variable est dclare dans une procdure : A l'aide de l'instruction Dim (aussi bien dans une feuille que dans un module) sa porte est limite cette procdure. On dit que la variable est locale. Elle n'est pas accessible en dehors de la procdure et elle est initialise chaque appel. A l'aide de linstruction Static la variable est galement locale mais elle conserve sa valeur d'un appel un autre. A l'aide de linstruction Private (mme effet que Dim).

Si une variable est dclare dans la section Gnral/Dclarations dune feuille ou dun module en utilisant le mot cl Dim (ou Private), la variable est dite locale ou module ou la feuille. Elle est disponible pour toutes les procdures de la feuille ou du module, mais pas pour les autres. Si une variable est declare dans la section Gnral /Dclaration d'un module (et non dune feuille ) l'aide du mot cl Public la place de Dim, la variable devient accessible par tous les modules de l'application. On dit qu'elle est globale. Sa dure de vie est celle de l'application toute entire. .3.1.3. Dclarations des constantes

Les constantes se dfinissent de la mme manire que les variables, autrement dit n'importe qu'el endroit du programme. La syntaxe est : [ Public/Private ] Const < indentificateur > = L'option public permet toutes les feuilles et modules de l'application accder la constante. VB dispose de nombreuses constantes prdfinis. Pour y accder, activer la commande : Affichage/Explorateur dobjets ou F2. .3.2. Les tableaux de valeurs

Professeur: ASSALE Adj Louis

8/97

INP-HB

Support de Cours

Visual Basic

Les tableaux peuvent possder de 1 jusqu' 60 dimensions. La syntaxe de dclaration gnrale est : Dim (ind1, ind2,....) As type Exemple1 Dim mois(1 to 12) As string Mois(1)= Janvier - tableau d'une dimension et dont les indices sont numrots de 1 12. Exemple2 Dim jour(7) As string - ici la borne nest pas dfinie la numrotation dbute 0 et va jusqu' 6. Les tableaux peuvent tre crs l'aide de la fonction ARRAY Exemple3 Dim semaine, jour semaine = array("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", dimanche") jour=semaine(0) 'retourne lundi ainsi chaque lment du tableau peut tre trait l'intrieur d'une boucle For each Jour in semaine 'traitement pour chaque jour de la semaine next - Dclaration de tableaux dynamiques Un tableau dynamique est un tableau dont la dimension n'est pas spcifie au moment de la dclaration mais dans le corps du programme. Exemple Dim Etudiants() as string Dim Numero as integer Numero=Numero+1 Redim Etudiant (Numero) Etudiant(Numero)="Assale" Le numro augmente d'une unit et on ajuste le tableau en consquence avec l'instruction REDIM. Mais Redim rinitialise le contenu du tableau donc seul le dernier enregistrement dans la liste apparat. Pour palier cela il faut ajouter le mot cl prserve redim Redim Preserve Etudiant(Numero) Erase rinitialise totalement le tableau

Professeur: ASSALE Adj Louis

9/97

INP-HB

Support de Cours

Visual Basic

.3.3. Dclaration type Elle seffectue dans la section dclaration d'un module (ou ventuellement d'une feuille dans ce cas ci la faire prcder du mot cl Private) laide du mot cl Type. Public type Etudiants Numero As integer Nom As String*20 Prenom As Strinng*25 Date_nais As Date Adresse As String*40 End type puis dans le programme Dim UnEtudiant As Etudiants UnEtudiant.Numero=13 On peut galement traiter plusieurs composante grce l'instruction with : With UnEtudiant .Numero=13 .Nom=Assal End with

Professeur: ASSALE Adj Louis

10/97

INP-HB

Support de Cours

Visual Basic

With s'applique aussi aux proprits des objets de visual Basic Exemple With Text1 .Font.Bold = true .Font.Italic=false End With .3.4. Les lments du langage Le commentaire s'exprime par l'apostrophe ( ' ) suivi d'une chane de caractres laffectation est le signe d'galit = GOTO pour le branchement inconditionnel Exemple : Goto tiquette 'instruction etiquette: 'autres instructions Le Goto n'est ni recommand ni recommandable Branchement conditionnel If condition Then instruction Else instruction End If La clause Else n'est pas obligatoire si le traitement effectuer est simple. On peut crire la structure sur une seule ligne If condition Then .action1 [Else action2]. Dans certain cas on utilise la fonction IIF IIF(condition,valeur si vrai, valeur si faux) exemple : IIF (x>0,x, -x) 'Tex1t est un objet 'font, bold et italic sont des ' proprits de cet objet

Professeur: ASSALE Adj Louis

11/97

INP-HB

Support de Cours

Visual Basic

-Les Boucles For Next Syntaxe : For compt = val1 To Val2 Step Val3 Instructions Next For I=1 To 100 Total = ToTal +I Next For I=100 To 1 Step -1 Total = ToTal +I Next

Remarque: - On peut quitter la boucle l'aide de la commande EXIT FOR - On peut galement modifier la valeur du compteur dans la boucle. For Each Next permet d'excuter une srie d'instructions portant sur un tableau ou une collection d'objets. Do Loop et While Wend Syntaxe : Do Until Condition Instructions Loop Do Instructions Loop Until Condition Exemple : I=1 Do While I= 9 or is .Show VbModal * Dans d'autres cas, on peut alors passer d'une feuille l'autre Syntaxe : < nom de la feuille >.Show VbModless - Hide Masque une feuille dj charge en mmoire il suffit de faire appel Show pour la rafficher. Syntaxe : < nom de la feuille >.Hide - Unload dcharge une feuille de la mmoire ce qui la rend galement invisible. Elle provoque lexcution de lvnement Form_Unload pour la feuille concerne. - Move permet de dplacer un objet quelconque et aussi modifier sa taille. Syntaxe .Move gauche, haut, largeur, hauteur c) Quelques vnements - Form_load qui est excut pendant le chargement de la feuille. - Form_Unload excut pendant le chargement de la feuille. d) Cration de Menu Pour ajouter un systme de menus une feuille, slectionner la et activer la commande Outils/Crateur de Menus * Suivre les dfinitions voulues et cliquer sur OK * Saisir le code qui dfinit les actions effectuer pour chaque option de menu. Dfinition de menu

Professeur: ASSALE Adj Louis

23/97

INP-HB

Support de Cours

Visual Basic

La bote de dialogue du crateur de menus offre diffrentes zones pour la dfinition de menu. - Caption : On rentre l'intitul d'une option de menu, on utilise le signe & pour indiquer l'emplacement du caractre de raccourci. - Name : On rentre le nom interne de loption de menu. - Shortcut : pour la slection d'un raccourci clavier. - Checked : dfinit une marque devant le menu. - Enabled : rend inactif l'option de menu, il sera en gris. - Visible : le rend visible. * Les flches et dcale l'option vers la gauche ou la droite, sert crer des sous menus. * Les flches et pour dplacer une ligne dans la liste du bas. * Les boutons Suivant, Insrer et Supprimer servent respectivement descendre d'une ligne dans le menu, insrer une nouvelle ligne pour dfinir une option de menu et supprimer la dfinition courante. Pour crer un menu flottant on procde comme prcdemment mais on dsactive la proprit visible afin de ne pas apparatre en haut de fentre. Pour l'utiliser comme menu flottant on fait prcder le nom du mot cl "Popupmenu". Comme un menu flottant ne surgit que quand l'on clique sur le un objet avec le bouton droit de la souris on pourrait affecter le menu lvnement click sur la souris d'un objet. Exp: Private Sub Nomobjet_MouseUp(Button As Integer, Shift As Integer, ) If Button = vbRightButton then PoPupMenu nomdeMenu Else End if End Sub .4.1.2. Les feuilles MDI

Elles servent crer des applications MDI ( pour Multiple Document interface ). Une application MDI contient une fentre principale pourvue ventuellement dun systme de menus (voire dune barre doutils et dune ligne dtat ) et dune ou plusieurs feuilles filles disposant de leurs propres menus tel que le traitement de textes Word.

Professeur: ASSALE Adj Louis

24/97

INP-HB

Support de Cours

Visual Basic

Elles ont la particularit de naccepter que des contrles qui possdent une proprit Align servant fixer le contrle en haut ou en bas de la fentre afin de

crer une barre doutils ou une ligne dtat. lespace restant est destin laffichage de document. Remarquez quune seule feuille MDI doit tre dfinie par projet.

.4.1.3.

Les botes de saisie et de Message

La bote de saisie saffiche laide de la fonction Inputbox qui prend trois paramtres : - Un pour le message affich - Un autre pour le titre de la bote de dialogue - et un troisime pour la valeur par dfaut La fonction retourne ce que lutilisateur saisit dans une variable de type variant ncessairement La syntaxe est nom_variable = InputBox(Message, Titre, Dfaut ) La bote de message sactive laide du Mot cl MsgBox qui peut tre une Instruction ou une fonction. Elle ncessite trois paramtres dans tous les cas. Le texte afficher lintrieur de la bote, une valeur servant dfinir son comportement et un type. Le 2e paramtre peut prendre plusieurs valeurs cumulatives : * Les boutons afficher : 0 (Ok Seul), 1 (OK et annuler), 2 (abandon, Ressayer et Ignorer), 3 (Oui, Non et Annuler), 4(Oui, Non) 5 (Ressayer et Annuler). * Le bouton actif par dfaut : 0 (Le premier), 256 (Le deuxime ) et 512 (Le troisime)

Professeur: ASSALE Adj Louis

25/97

INP-HB

Support de Cours

Visual Basic

* Licne afficher dans la bote : 0 (aucune ), 16 (Stop), 32 (Point dexclamation ) et 64 (Information). * 0 pour la fentre est modale par rapport lapplication ou 4096 par rapport Windows. On additionne ces 4 lments pour dfinir totalement le style de la bote de message. La syntaxe laide de l instruction MsgBox est : MsgBox Texte, argument central, Titre Lutilisation de MsgBox comme une fonction renvoie un entier qui correspond : 1 pour OK (constante VbOk), 2 pour Annuler (VbCancel), 3 pour Abandon (VbAbort), 4 pour Ressayer (VbRetry), 5 pour Ignorer (VbIgnore), 6 pour Oui (VbYes) et 7 pour Non ( VbNo). La syntaxe est : Valeur_Retour = MsgBox (Texte, ArgumentCentral, Titre) .4.2. Les contrles standards de Visual Basic Les contrles ont quelques proprits en commun qui sont les suivantes : - Name : qui dfinit le nom interne de lobjet utilis dans le code 3 - Parent : Retourne la feuille dans laquelle se trouve lobjet. Cette proprit nest disponible quau moment de lexcution - Lappearance : Dfinit si le contrle prsente un aspect en relief (True) ou non ( False ). - Caption : Dfinit le contenu de tout contrle qui contient du texte lexception des champs de saisie o on a Text. - BackColor et ForeColor : Couleur de fond et davant plan. - DragMode : relatif au glisser (Drag) et Dposer (Drop) - Visible et Enabled : respectivement rend visible ou active le contrle quand la valeur est True et rend invisible ou inactive quand cest False. - TabIndex : dfinit un ordre daccs aux diffrents contrles de la feuille lorsquon appuie sur la touche de tabulation. Une valeur unique est affecte chaque contrle dans lordre de cration. Cest cette valeur que lon peut modifier. Ces vnements suivants sont communs la plupart des contrles : - Change : est activ quand le contenu du contrle est modifi. - Click et DblClick sont excuts lorsquon effectue un Click Simple ou Double sur le Contrle. Les boutons, gauche et droite peuvent tre diffrencis. - Les vnements dont le nom commence par Drag concernent le dpt dlments. - Ceux dont le nom dbute par Link concernent les liaisons DDE

Professeur: ASSALE Adj Louis

26/97

INP-HB

Support de Cours

Visual Basic

- Un objet a le focus lorsquil devient actif et quil reoit les actions provenant du clavier. On a plusieurs vnements pour grer cet tat : GotFocus (entre dans le contrle) et LostFocus (Sortie du contrle). Le Focus peut tre obtenu par un click, en utilisant la touche de tabulation ou encore par la mthode : .SetFocus - On a trois vnements provenant du clavier KeyDown (On appuie sur la touche ), KeyPress (La touche est en fin de course ) et KeyUp ( On relche la touche ). - On a galement 3 vnements relatifs la souris en plus du click et du double click MouseDown (appui sur un bouton), MouseMove (dplacement du pointeur audessus du contrle) et MouseUp (relchement du bouton) Remarque : Certaines actions provoquent l'excution de plusieurs vnements. Ainsi, l'appui sur une touche dans un champ de saisie dclenche successivement keydown, KeyPress et KeyUp. De mme, un click avec la souris transite par KeyUp, Click et MouseMove, etc... .4.2.1. Les tiquettes Elles servent afficher du texte par l'intermdiaire de sa proprit Caption. Pour crer une tiquette, il suffit de slectionner le contrle dans la bote outils puis de dessiner son contour l'aide de la souris sur la feuille. Visual Basic nomme automatiquement le contrle Label1 si c'est le 1er du genre, les proprits Name (nom interne de l'tiquette) et Caption (texte affich par l'tiquette ) ont la mme valeur Label1. Pour modifier le texte affich en mode Programme, il suffit d'crire Syntaxe : Label1.Caption = "nouveau texte". Le seul caractre standard qui n'est pas affich est le & qui indique normalement la prsence d'une touche d'accs rapide, exactement comme dans un menu. Ce contrle dispose de toutes les proprits que nous venons de dcrire. De plus, on a: -BorderStyle qui dfinit le contour du rectangle qui contient l'tiquette. Valeur 0 aucun contour. Valeur 1 trace une bordure mince. -AutoSize est True quand la longueur du contrle doit tre ajuste son contenu.

.4.2.2.

Les champs de saisie

Ce sont de vritables petits diteurs de texte. Ils se positionnent sur la feuille comme les autres contrles. Par dfaut VB nomme le 1er champ de saisie Text1.

Professeur: ASSALE Adj Louis

27/97

INP-HB

Support de Cours

Visual Basic

Le mme nom Text1 est utilis par la proprit Text qui permet d'afficher le texte Text1 dans le champ de saisie. Ces principales proprits sont : - Le nombre total de caractres d'un champ de saisie est de 64Ko en mode 16 bits et plus de 2 milliards en mode 32 bits. - Une proprit Font pour dfinir la place des caractres. Malheureusement, elle s'applique la totalit du champ. - MaxLengh pour limiter le nombre de caractres saisir. - MultiLine True pour pouvoir saisir plusieurs lignes dans le champ de saisie. Deux proprits permettent la slection dans un champ de saisie. - SelStart : dfinit ou retourne la position du curseur dans le champ de saisie. Une valeur nulle place le point d'insertion avant le premier caractre, une valeur gale Len(.ext ) le positionne aprs le dernier caractre. - SelLentgh : dfinit ou contient le nombre de caractres slectionns dans le texte. Une valeur nulle indique quaucune slection n'est opre. On peut contrler les caractres saisis dans le champ l'aide des vnements KeyDown (appui), KeyPress (touche presse) et KeyUp (touche releve). Ces procdures reoivent un argument appel KeyAscII qui est un nombre entier correspondant au code de la touche. On peut analyser la frappe et ventuellement l'annuler en lui affectant la valeur 0. L'vnement change est galement dclench une fois le caractre saisi est affich dans le champ. On pourra par exemple modifier ce caractre. Lvnement LostFocus peut permettre un contrle posteriori de la saisie. .4.2.3. Les boutons de commande

Ils disposent de l'ensemble des proprits que nous avons vues. Ils ont pour vocation d'effectuer une certaine action. Lvnement principal dclench par un bouton est Click. Celui-ci est engendr soit lorsque lutilisateur clique avec la souris, soit par programme en appelant directement la procdure bouton_click soit encore en affectant la valeur True la proprit Value du bouton. Les traitements les plus courants sont : - Quitter le programme - Affichage de bote de dialogue ou feuille grce linstruction Load ou Show - La validation dune bote de dialogue (OK) - Lannulation dune bote de dialogue (Annuler ) .4.2.4. Bouton doption

Professeur: ASSALE Adj Louis

28/97

INP-HB

Support de Cours

Visual Basic

Un bouton doption fait partie dun ensemble et est gnralement plac dans un cadre ( Frame ). On peut soit crer une srie de bouton doption, soit les placer dans un groupe. Dans ce dernier cas, chaque bouton est dsign par un numro dindex. Les boutons ragissent aussi bien au clavier (Raccourci, & devant le caractre voulu ) qua la souris. Les proprits et vnements importants sont : - Proprit Value : vaut True si ce bouton est slectionn, False sinon. - Lvnement click permet de traiter le cas o un bouton est activ (soit au clavier soit la souris) .4.2.5. Exercice1 Ecrire un programme qui permet dentrer 2 entiers et qui calcule soit : Leur Pgcd Leur produit Le reste de la division du premier par le second Linterface peut tre la suivante :

.4.2.6.

Les cases cocher

Contrairement aux boutons d'options, elles fonctionnent de faon totalement individuelle. La proprit principale est Value qui prendra trois valeurs : VbUnchecked (0) Desactiv VbChecked (1) Activ VbGrayed (2) Etat non dfini L'vnement important est Click.

Professeur: ASSALE Adj Louis

29/97

INP-HB

Support de Cours

Visual Basic

.4.2.7.

Les listes

Elles servent slectionner un lment parmi un ensemble de propositions. on a deux sortes de listes : - listes simples ou combines concernant des valeurs de type Texte avec ou sans champ de saisie. - listes servant grer disques, rpertoires et fichiers. a) Listes simples Zone rectangulaire affectant un ensemble de donnes et comportant des fois des barres de dfilement, les listes comme les autres contrles disposent des vnements relatifs au clavier, la souris et au focus et certaines mthodes telles que Move. Les principales proprits sont : - MultiSelect dfinit le mode de slection dans la liste : 0 par dfaut 1 seule slection. 1 Plusieurs slections successives dlments 2 choix de plusieurs lments continus comme discontinus - La proprit Selected permet de dterminer si llment de rang i est slectionn. Elle renvoie un boolen. La numrotation dbute par 0. Exemple :If list1.selected(4) then test si llment de rang 4 est slectionn - La proprit List en mode cration permet d'ajouter de nouveaux lments en mode Programmation; c'est la mthode AddItem qui le permet. Exemple. : List1.AddItem "IGL1" place IGL1 la fin de la liste. List.AddItem "IGL1" 4 ou List1.List(4)="IGL1" place le texte IGL1 la 4me position dans la liste List1.List(List1.count) = "IGL1" place le texte IGL1 la fin. - Sorted True permet de trier par ordre alphabtique. - ListCount renvoie le nombre d'lments - La mthode RemoveItem efface un lment ; exemple :List1.RemoveItem 4 - La mthode Clear efface totalement la liste. - Le contenu de l'lment slectionn par Click est renvoy par deux proprits : Text qui renvoie une chane de caractres. Et ListIndex qui retrouve ou dfinit le rang de l'lment courant associ List , elle donne le nom de l'lment. Exemple. : Variable = List1.Text ou Variable = List1.List(list1.ListIndex). - Pour renvoyer le contenu de llment de rang i, on utilise la mthode List par Variable = List1.list(i) b) Listes combines

Professeur: ASSALE Adj Louis

30/97

INP-HB

Support de Cours

Visual Basic

Elles associent Liste simple et champ de saisie. Elles possdent donc toutes les proprits et mthodes des listes simples plus certaines qui leur sont propres : -Style dfinit le mode d'affiche 0 dfinit liste combin ( signaler) seul le champ de saisie est visible 1 Liste combine simple semblable un ListBox, champ de saisie en plus. 2 Liste combine droulante sans saisie. - L'initialisation d'une liste combine se fait par la proprit ListIndex exemple: Combo1.ListIndex=1 - La proprit text contient llment slectionn ou le texte saisie l'vnement click permet de rcuprer l'lment slectionn dans la liste. C) listes de disques, rpertoires et fichiers Elles sont automatiquement remplies par VB ds lorsque les chemins d'accs sont correctement dfinis En tant que liste, elles possdent la plupart des proprits et des vnements des autres listes, cependant leurs proprits, List et ListCount sont en lecture seulement. Par contre ListIndex est en lecture/criture (position courante et changement de position dans la liste). Ces listes ont des proprits spcifiques: Liste d'units * proprit Drive retourne le nom du lecteur exemple Lecteur1.Drive="C" pour changer de lecteur de disque (Lecteur1 tant le nom de lobjet liste de disque) * ListCount permet de connatre le nombre d'units et postes connects en rseau. * le plus important des vnements est Change() qui sexcute quand lon a chang de lecteur. liste de rpertoires *Path contient le nom de rpertoire courant Dir1.Path="C:\IGL\essai" pour changer de rpertoire. Le tableau List contient les noms de tous les lments de la liste l'indice O correspond au nom de premier sous-rpertoire, 1 au second, etc. Le nom du rpertoire lui-mme a pour indice -1, son parent a pour indice -2. Exemple sur le rpertoire C:\V.B on a un sous-rpertoire Projet Dir1.List(0) renvoie le sous-rpertoire Projet Dir1.List(-1) renvoie le rpertoire C:\VB

Professeur: ASSALE Adj Louis

31/97

INP-HB

Support de Cours

Visual Basic

Dir1.List(-2) renvoie le rpertoire parent C:\ * le plus important des vnements est Change() qui sexcute quand lon a chang de rpertoire. Liste de fichiers * Proprit Path renvoie le nom du rpertoire courant * Proprit Filename nom de fichier Le Chemin d'accs complet un fichier est :File1.Path+"\"+File1.Filemane Les proprits archives, Hidden(cach) ReadOnly(lecture seul) et System (fichiers systmes) peuvent tre mise True ou False pour limiter la liste des fichiers.Exemple : File1.Hidden=True affiche permet dafficher les fichiers cachs Un autre moyen est de dfinir un masque de la proprit Pattern. Ce masque rpond aux normes du DOS * n'importe quelle suite de caractre et ? un caractre unique. Pattern peut contenir plusieurs dfinitions spares par des ; File1.Pattern="*.DOC;*.TXT;*.EXE" N.B : toute modification de Drive, Path, filename et Pattern provoque un vnement change .4.2.8. Exercice2

Professeur: ASSALE Adj Louis

32/97

INP-HB

Support de Cours

Visual Basic

Ecrire un programme qui copie les fichiers dun lecteur de disque dans une liste et qui affiche ventuellement le nombre de fichiers copis et la taille de ces fichiers. Linterface pourrait tre :

.4.2.9.

Les barres de dfilement

Elles permettent de raliser des slections en faisant glisser un curseur l'aide de la souris Elles possdent les proprits courantes des autres contrles, certaines leur sont spcifiques: -Min. et Max. dfinissent respectueusement les valeurs de la proprit value de la barre lorsque celle-ci est ses positions extrmes (dbut et fin) -- SmallChange dtermine la quantit dont varie la proprit value lorsqu'on clique sur les flches places aux extrmits de la barre - LargeChange fait la mme chose, mais lorsqu'on clique sur la barre ellemme .4.2.10. Le contrle Minuterie Dispose dune proprit Interval dont la valeur lorsquelle est diffrente de zro dclenche intervalle rgulier (exprim en millisecondes) lvnement Timer() de la minuterie. Exemple : Ecrire un programme qui affiche lheure en temps rel laide dun contrle tiquette et dune minuterie. .4.2.11. Les contrles donnes ou contrles DATA Servent lier une base de donnes l'application. Ils s'utilisent conjointement avec les contrls tiquettes, champs de saisie, listes, images pour afficher ou entrer des informations dans la base de donnes. Les contrles donns disposent

Professeur: ASSALE Adj Louis

33/97

INP-HB

Support de Cours

Visual Basic

de trois proprits importantes qui permettent de dfinir le lien entre la base de donnes et d'application: DataBaseName qui permet d'indiquer un nom de la base de donnes RecordSource qui indique le nom de la table ou la requte la quelle on souhaite accder. RecordSetType qui indique lun des 3 type d'accs : type "Table": visualiser ou modifier les donnes d'une table Type "Dynaset" modifier ou visualiser les champs provenant d'une requte portant sur une ou plusieurs tables Type "Snapshot" c'est un dynaset statique on ne peut que visualiser ces donnes. Les contrles lis aux contrles donns disposent des proprits : DataSource: pour indiquer le nom de contrle li DataField: pour spcifier le nom du champ et de la proprit DataChanged valeur boolenne (disponible uniquement en excution) qui indique si ce champ a t modifi. Les contrles donns disposent aussi des proprits : Database: qui donne accs la liste des tables qu'elle conteint laide d'un objet TableDef(pour une table unique) ou la collection TableDefs(l'ensemble des tables de base) Exemple : For I=0 To Data1.DataBase.TableDefs.Count-1 List1.Additem Dta1.DataBase.TableDefs(I).Name Next Affiche dans le contrle Liste 1 le nom des diffrentes table de base de donne lie Data 1 RecordSet sert de point d'entre vers le contenu de la base de donne slectionne. La proprit Record Set dispose de nombreuses mthodes et La proprit. Une des proprits importantes du RecordSet se dfinit par exemple Data1.RecordSet ("") qui retourne le contenu du champ dont le nom est spcifi. Les mthodes courantes de la proprit RecordSet sont: - AddNew: qui ajoute un enregistrement vierge qui n'est pas automatiquement crit sur le disque. Data1.RecordSet.AddNew - UpDate ou UpDateRecord valide lenregistrement. la mthode UpDataRecord est gnralement suivie de l'instruction Data1.RecordSet.BookMark = Data1.RecordSet.Lastmodified qui fixe la position de l'enregistrement au dernier enregistrement modifi - Delete: supprime l'enregistrement courant Data1.Record set.Delete

Professeur: ASSALE Adj Louis

34/97

INP-HB

Support de Cours

Visual Basic

Data1.Record set.MoveNext - MoveNext:, MovePrevious, MoveFirst, MoveLast se positionnent sur les enregistrements qui suivent, prcdent premier et dernier. - UpDateControls permet d'annuler les modifications l'enregistrement courant Autres proprits et mthodes du contrle donne - BOFAction: action effectuer lors d'une tentative de dplacement avant le premier enregistrement 2 valeurs : 0 revient sur le 1er enregistrement 1 se positionne avant le 1er enregistrement - EOFAction : action effectuer aprs le dernier enregistrement 3 valeurs 0 revient au dernier enregistrement 1 se positionne aprs le dernier enregistrement 2 ajoute un nouvel enregistrement - Readonly :la base est en lecture seule quand la valeur est True ou false sinon) La mthode Refresh: force la fermeture et la reconstitution de l'objet Recordset .4.2.12. Les contrle DBList, DBCombo et DBGrid Les contrles DBList et DBCombo s'apparentent au contrle standards ListBox et ComboBox mais sont conus pour afficher les informations provenant d'une base de donnes Ils disposent en plus des proprits DataSource et DataField qui les lient la base de donnes courantes par un contrle data des proprits: RowSource pour spcifier la table qui contient les lments qu'on veut afficher (gnralement, il provient d'un autre contrle Data) ListField indique le nom du champ de la table traite Exemple: Supposons qu'on ait une base de donnes "socit.mbd" compose des tables client, produit, et commande dfinies par: Client(code cl, nom, prnoms, adresse) Produit(codePrdt, libell, prix) Commande(codeCl, codePrdt, quantit, date) Supposons qu'on est dj saisi des noms des clients et produits. Pour saisi une commande on pourrait afficher une liste contenant les clients ou les produits. Pour cela on utilise un contrle DBList ou DBCombo ou avec le contrle Donne Data1 dont la proprit DataBaseName serait "societ.mbd" et RecordSource la table "commande". Un contrle Donne Data2 dont la proprit Databasename serait "socit.mbd" et RecordSource la table "client" Dans le contrle DBList ou DBCombo ou fonction les proprits

Professeur: ASSALE Adj Louis

35/97

INP-HB

Support de Cours

Visual Basic

DataSource: Data1 DataField: codecl RowSource: Data2 ListField: codecl Le contrle DBGrid semblable au contrle Grid permet d'afficher les lments de la base de donnes sous forme de tableau. .4.2.13. Exercice3 Gestion d'une bibliothque universitaire On donne les tables suivantes : Etudiants (Matricule, Nom, Prnoms, Adresse, Classe) ; Livre (Code, Titre, Auteur, Genre, Nombre_Ex ) ; Classe(Code_Cl, Intitul, Effectif) Emprunt (Matricule, Code, Date_Sortie, Date_Retour) Un tudiant ne peut emprunter au maximum que 3 livres, le prt est valable pour une dure de deux semaines - Liste des livres puiss - Liste des tudiants relancs (qui n'ont pas rendu leur livre)

.5.

GESTION DES FICHIERS

Les instructions Open et Close permettent douvrir et de fermer des fichiers en mode squentiel et accs direct. La fonction FreeFile permet de connatre le prochain numro de fichier libre. La fonction LOF(numro de fichier) (Length Of File) renvoie la taille en octets dun fichier ouvert. .5.1. Fichiers squentiels Dans de tels fichiers, les enregistrements sont crits et lus ligne par ligne. Ils permettent de grer du texte et des donnes. Ils peuvent souvrir selon deux procdures diffrentes : .5.1.1. Ecriture

Le mot-cl Output ouvre un fichier squentiel en criture. Le fichier sous le mme nom est automatiquement remplac. Numfich=Freefile Open "Donnes.DBF" for output As #numfich

Professeur: ASSALE Adj Louis

36/97

INP-HB

Support de Cours

Visual Basic

Le mot-cl Append ouvre un fichier en ajout Numfich=FreeFile Open "Donnes.DBF" For Append As #numfich Les instructions Print # et Write # permettent dcrire dans un fichier squentiel. Print #numfich, texte$ Print #numfich, a%, b%, c% Write # crit des chanes de caractres entre guillemets et spare les donnes par une virgule. .5.1.2. Lecture

Louverture en lecture seffectue laide du mot-cl Input avec linstruction Open. Un fichier ne peut tre ouvert quen un seul exemplaire. Numfich=FreeFile Open "Donnes.DBF" For Input As #Numfich La lecture seffectue ligne par ligne laide de la commande Input # ou Line Input #. Line Input #numfich, ligne$ On peut affecter les valeurs lues des variables condition que ces valeurs soient spares par des virgules. Peut importe si ces valeurs sont entre guillemets. Input #numfich, a%, b%, c% La fin de fichier est teste laide de la fonction Eof. While not Eof(numfich) Line input #numfich, ligne$ Wend .5.2. Les fichiers accs direct Dans de tels fichiers, tous les enregistrements sont de longueur identique. Cela permet daccder rapidement un enregistrement sans lire tout le fichier. Ces fichiers sont utiliss pour grer de grandes quantits de donnes. .5.2.1. Ouverture

Open "Donnes.DAT" For Random As #numfich Len=Len(VarEnreg)Professeur: ASSALE Adj Louis 37/97 INP-HB

Support de Cours

Visual Basic

VarEnreg est la variable denregistrement Dfinition denregistrement par variable personnalise Il sagit dune variable de type personnalis qui dcrit la structure des enregistrements et des champs. Type Enregistrement Champ1 As Integer Champ2 As String*50 Champ3 As Double End Type Dans le programme on dclare la variable denregistrement avec le type de donnes personnalis. Dim VarEnreg As enregistrement .5.2.2. Lecture et criture denregistrements permet de lire un permet de stocker

Get #Numfich, NumEnreg%, VarEnreg enregistrement entier Put #Numfich, NumEnreg%, VarEnreg lenregistrement lu dans le fichier.

Le nombre denregistrement dun fichier accs direct est : NbreEnreg&=Lof(Numfich)\Len(VarEnreg) .5.3. Les fichiers binaires Ce sont des fichiers de tout type. Les donnes sont lues et crites octet par octet. En mode binaire, on peut lire et modifier des fichiers de donnes issus dapplications professionnelles condition de connatre leur format pour pouvoir les exploiter. Ouverture dun fichier binaire Open "Data.BIN" For binary As #numfich Lecture et criture dun fichier binaire Get #numfich, , BinVar pour la lecture Put #numfich, , BinVar pour lcriture

Professeur: ASSALE Adj Louis

38/97

INP-HB

Support de Cours

Visual Basic

Seek #numfich, , position position

positionne le pointeur du fichier sur

Le nombre doctets lus et crits dpend du type de donnes de la variable nomme BinVar. Sil sagit de nombres entiers simples, chaque Get et Put lit et crit deux octets. En gnral, on utilise des variables de type chane de caractres. BinVar$ = space(5000) Get #numfich, , , BinVar$ Chaque opration de lecture copie 5 000 octets dans la mmoire. .5.4. Exercice Ecrire un programme qui permette de lire et crire un nom utilisateur et un mot de passe dun fichier

.6.

GESTION DES OBJETS

On appelle objet les feuilles, contrles et composants OLE. Sous VB, lon peut crer des objets de manire dynamique ou crer plusieurs instances dun objet par lutilisation des objets prdfinis. On peut galement dfinir ses propres objets. .6.1. Variables Objets Les objets dynamiques sont grs en interne comme des variables objets. Les variables objets, dun point de vue porte, se conforment aux principes des variables conventionnelles. On distingue la variable objet gnrale (Object), les types dobjets spcifiques et gnriques. Les types dobjets gnriques sont utiliss avec des feuilles (Type Form) ou avec des contrles (Type Control). La liste de quelques types dobjets spcifiques est donne dans le tableau suivant : Contrle Case cocher Liste Modifiable Bouton Liste de dossiers Liste de lecteursProfesseur: ASSALE Adj Louis

Type dobjet Spcifique CheckBox ComboBox CommandButton DirListBox DriveListBox39/97 INP-HB

Support de Cours

Visual Basic

Liste de Fichiers

FilelistBox

.6.1.1. Dclaration de variables objets et de nouvelle instance avec New Variables objets gnrales Dim objet_Util As Objet Dim Control_Test As Control Dim Form_Test As Form Variables objets spcifiques Dim CtlSaisie As TextBox Dim LstSelection As ListBox Nouvelle instance, la feuille TestForm existe Dim FormA As new TestForm Afficher la feuille FormA.Show .6.1.2. Types dobjets dans les listes de paramtres

On peut utiliser les types dobjets gnraux (As Object), (As Form) et (As Control) ou utiliser les types dobjets spcifiques comme TextBox, CommandButton ou ListBox comme paramtres. Sub test (Ctl As control, Frm As Form, Text1 As TextBox) instruction Frm.caption = Barre de titre End sub Seuls les types dobjets dclars comme gnriques (As Form ou As Control) peuvent tre passs aux procdures Screen.ActiveForm et MDIForm.ActiveForm ou Screen.ActiveControl et MDIForm.ActiveControl. .6.1.3. Utilisation des variables objets

Linstruction Set permet daffecter une variable objet une expression objet et par voie de consquence une rfrence dobjet. La syntaxe est : Set VariableObjet = [New] ExprObjet | Nothing

Professeur: ASSALE Adj Louis

40/97

INP-HB

Support de Cours

Visual Basic

Le mot-cl New permet de crer une nouvelle instance de lobjet. Laffectation de la valeur Nothing une variable objet supprime la rfrence dobjet. On doit crer une rfrence un objet avant dutiliser une variable Objet. Dim Frmtest As Form Set Frmtest = Me Pour exprimer quune variable ne se rfre aucun objet, on lui affecte Nothing. Set VariableObjet = Nothing Set et New Combins Permettent de Crer de Nouvelles instances dun Objet. Dim Frmtest As Form affectation dun objet la variable, cration dune instance Set Frmtest = New Form1 affichage de linstance Frmtest.Show On peut connatre le type de lobjet avec linstruction If Typeof If typeof Lecontrole Is TextBox Then Instructions End If On peut tester si deux variables dobjets rfrencent un mme objet avec loprateur Is If feuille1 Is feuille2 Then Instruction End if Nothing sert galement tester si une rfrence dobjet t cre. If feuilleSaisie Is Nothing Then Set feuilleSaiosie = FeuilleB End if

.7.

ACCES AUX BASES DE DONNEES

Les diffrents modles daccs aux donnes proposs par Visual Basic 6 sont :

Professeur: ASSALE Adj Louis

41/97

INP-HB

Support de Cours

Visual Basic

Le modle DAO (Data Access Objet) rserv la base de donnes Access, Dbase, etc (base de donnes de type fichier). Le modle RDO (Remote Data Object) plus spcifiquement utilis avec linterface ODBC (OpenDataBase Connectivity). Le Modle ADO (ActiveX Data Object), le plus rcent de Microsoft, qui tend devenir un vritable satandard .7.1. Le Modle DAO Lobjet Database du modle DAO permet de construire et dexploiter une base de donnes en mode programmation, cela suppose la connaissance du modle objet de base de donnes.

Professeur: ASSALE Adj Louis

42/97

INP-HB

Support de Cours

Visual Basic

DBEngine

Workspace Database TableDef Field Index Field User Group Group User Error La figure reproduit la hirarchie de Jet Engine 3.5. Lobjet de base du modle dobjet est DBEngine qui se sert de lobjet Error pour prparer les informations sur les erreurs daccs aux donnes. Lobjet Workspace dfinit un espace de travail pour un seul utilisateur. Et cest ce qui nous permet de dmarrer des sessions diffrentes par utilisateur. Vb cre par dfaut un objet Workspace, workspace(0), moins quon dsire cre un autre explicitement. .7.1.1. Le stockage de donnes QueryDef Recordset Field Field Parameter Container Relation Documernt Field

On utilise la mthode CreatDatabase de lobjet Workspace pour crer une base de donnes. Exemple Dim NewDb As Database, NewWS As Workspace Set News = DBEngine.Workspace(0) Set NewDb = News.createDatabase(C:\Essai.MDB, DBLangGeneral) La constante DbLangGeneral spcifie comment les chanes sont tries et compares, ce qui peut diffrer dun langage un autre. DbLangGeneral prend en compte les rgles de la langue anglaise. Un autre argument optionnel pour la mthode CreateDatabase permet de spcifier quelle version du jet database engine utilise pour crer la base et spcifie si la base doit tre crypte. La version par dfaut du jet engine pour Windows 9X et NT est 3.51. Exemple Dim NewDb As Database, NewWs As WorkSpaceProfesseur: ASSALE Adj Louis 43/97 INP-HB

Support de Cours

Visual Basic

Dim Dbopts As Long, DbName As String Set NewWs = DBEngine.Workspace(0) DbName = C:\essai.MDB Dbopts = dbVersion25 + dbEncrypt Set NewDb = News.CreateDatabase( DbName, dbLangGeneral, Dbopt) Creation de table Dim NewTb As Tabledef Set NewTb = NewDb.CreateTableDef(Etudiant) Cration de champs Dim Chp1 As Field Set Chp1 = NewTb.CreateField("Nom", dbtext,20) Ajout de champs la dfinition de la Table NewTb.Fields.Append Chp1 NewDb.TableDefs(Etudiant).Fields.Delete Nom dtruit le champ Nom Ajout de la table la base NewDb.TableDefs.Append NewTb NewDb.Close NewDb.TableDefs.delete Etudiant dtruit la table Etudiant Utilisation dune requte pour crer une table Dim SQLReq As String SQLReq = Create Table Etudiant (Nom Text(20), Prenom Text(30), SQLReq = SQLReq + Date_nais DateTime); NewDb.execute SQLReq On peut galement crer des Index, des Relations et des requtes. N.B. : Tout ce qui prcde peut seffectuer laide du gestionnaire de donnes (VISDATA) fourni par Visaul Basic. .7.1.2. La manipulation de donnes

La manipulation de donnes laide du modle ncessite la dfinition dun objet Database et dun objet Recordset.

Professeur: ASSALE Adj Louis

44/97

INP-HB

Support de Cours

Visual Basic

On ouvre lobjet Database en lassociant une base de donnes physique et on ouvre galement lobjet Recordset lassociant une table (Recordset de type Table) ou une requte (Recordset de type Dynaset). La syntaxe est : Dim DB As Database Dim RC As Recordset pointer vers la base de donnes Set DB = OpenDatabase(C:\Essai.MDB) pointer vers la table Client Set RC = DB.OpenRecordset(Client, dbOpenDynaset) se placer sur le premier enregistrement du recordset RC.MoveFirst affecter les informations aux contrles Texte TXTCODE.Text = RC ![Code_Cl] TXTNOM.Text = RC ![Nom] TXTPRENOM = RC ![Prnom] TXTADRESSE = RC ![Adresse] Dplacement dans un Recordset Les mthodes MoveFirst, MoveLast, MovePrevious et MoveNext permettent de se dplacer dans un Recordset. Les proprits valeur boolenne BOF et EOF dun objet Recordset permettent de savoir si lon est au dbut ou fin du Recordset. Modification dans un Recordset La mthode Edit permet de se placer en mode modification, la modification doit tre valide par la mthode Update. Exemple : se placer en modification sur le Recordset RC.Edit modifier les champs modifiables RC ![Nom] = TXTNOM.Text RC ![Prnom] = TXTPRENOM.Text valider rellement la modification RC.Update Cration dun enregistrement La mthode AddNew de lobjet Recordset permet de crer un enregistrement vierge qui nest pas automatiquement valid. Exemple crer nouvel enregistrement RC.AddNew

Professeur: ASSALE Adj Louis

45/97

INP-HB

Support de Cours

Visual Basic

mettre jour les champs RC ![Nom] = TXTNOM.Text RC ![Prnom] = TXTPRENOM.Text RC ![Adresse] = TXTADRESSE.Text valider lenregistrement RC.Update Suppression dun enregistrement La mthode Delete est utilise, suivi dun dplacement du pointeur interne avant ou aprs lenregistrement supprim. Exemple : supprimer lenregistrement courant RC.Delete se dplacer sur lenregistrement suivant RC.MoveNext Recherche dun enregistrement La recherche dans un Recordset de type Dynaset seffectue laide de la mthode FindNext ou FindFirst. La syntaxe est FindFirst Condition, o condition est semblable au critre de la clause Where dans SQL. On utilise la proprit NoMatch pour savoir si la recherche a russi ou non. Exemple recherche du client dont le nom est saisi dans le contrle TXTNOM RC.FindNext [Nom]= & & TXTNOM.Text & tester sil a t trouv if not RC.NoMatch Then affiche Afficher les donnes Else MsgBoxLe nom na pas t trouv End if Affichage des enregistrements dans une liste ou grille On suppose la liste List1 et la grille MSFlexGrid1 cres. On dsire afficher les nom et prnom des clients dans la liste et les code, nom et prnom dans une grille. On se place sur le premier enregistrement RC.MoveFirst On rpte jusqu la fin des enregistrements Do Until RC.EOF On remplit la liste List1.AddItem RC![Nom] & & RC![Prnom] On passe lenregistrement suivant RC.MoveNext

Professeur: ASSALE Adj Louis

46/97

INP-HB

Support de Cours

Visual Basic

Loop On rinitialise la grille MSFlexGrid1.Clear On dfinit le nombre de colonnes MSFlexGrid1.Cols = 3 Pas de colonnes gauche des donnes MSFlexGrid1.FixedCols = 0 On se place sur le premier enregistrement RC.MoveFirst On rpte jusqu la fin des enregistrements Do Until RC.EOF On remplit la grille, chaque colonne reoit un champ MSFlexGrid1.AddItem RC![Code_Cl] & Chr(9) & RC![nom] & _ Chr(9) & RC![prnom] On passe lenregistrement suivant RC.MoveNext Loop Remarquons que ces instructions se placent gnralement dans lvnement Form_Activite() de la feuille qui contient la liste ou la grille. .7.2. Le modle RDO Le modle RDO utilise lAPI (Application Programming Interface) ODBC (Open Data Base Connectivity). De ce fait pour utiliser ce modle, il est ncessaire de dfinir une source de donnes DSN (DataSourceName) laide de lAPI ODBC. .7.2.1. Dfinition dune source de donnes ODBC

Microsoft offre des pilotes ODBC pour accder aux diffrents Systme de Gestion de Base de Donnes. Par ailleurs, ces systmes offrent eux-mme des pilotes ODBC pour accder leurs bases. Pour crer une source de donnes ODBC suivre les tapes suivantes : Menu Dmarrer Panneau de configuration Double-cliquer sur licne ODBC (32 bits). La fentre suivante saffiche :

Professeur: ASSALE Adj Louis

47/97

INP-HB

Support de Cours

Visual Basic

Choisir longlet DSN utilisateur (visible uniquement pour lutilisateur et sur cette machine) ou DSN systme (visible de tous) Cliquer sur le bouton Ajouter Choisir le pilote Microsoft ODBC for Oracle ou Oracle ODBC Driver par exemple Cliquer sur le bouton Terminer

Cliquer sur le bouton Ok pour crer la source de donnes Une fois la DSN cre, la connexion Visual Basic/SGBDR seffectue soit en utilisant un contrle Microsoft Remote Data Control (MSRDC) ou en programmant des objets RdoConnection. .7.2.2. Le Composant Activex RDO 2.0 (MSRDC)

Professeur: ASSALE Adj Louis

48/97

INP-HB

Support de Cours

Visual Basic

Pour utiliser un composant RDO, il faut suivre les tapes suivantes : Cliquer sur projet Cliquer sur Composants Cocher le composant Microsoft RemoteData Control 6.0 Insrer le dans une feuille Les proprits les plus importantes du composant MSRDC sont : Connect = Chane de connexion ODBC : cette proprit contient une chane qui dfinit les informations dune source de donnes ODBC. SQL = Chane : cette chane indique une requte SQL permettant daccder aux tables de bases de donnes. DataSourceName : nom du DSN dj dfini par le programme ODBC dans le panneau de configuration. En cliquant sur la liste droulante dans la proprit du contrle, on voit apparatre lensemble des DSN. CursorDriver : type de curseur choisir rdUseODBC curseur ODBC. La syntaxe de la chane de connexion ODBC est la suivante : DSN=nom_source ;UID=nom_utilisateur ;PWD=mot_passe ;DATABASE=no m_base_de_donnes ;SERVER=nom_rseau_serveur ;DRIVER=nom_pilote_so urce_de_donnes ;APP=nom_application ;WSID=identifiant_de _la station Le mot-cl DSN nest pas utilis en prsence du mot-cl DRIVER ; si le nom du DRIVER contient des espaces le mettre entre accolades { }. Le contrle MSRDC dispose dun objet Resulset semblable lobjet Recordset du contrle Data du modle DAO. Lobjet resultset possde les mthodes AddNew, Update, Edit, Delete, MoveFirst, MoveLast, etc qui permettent linsertion, la modification, la suppression et la navigation dans un jeu de rsultats. En outre, le contrle MSRDC dispose de lobjet Connection qui possde la mthode Execute permettant dexcuter tout type de requte SQL. Exemple Soit insrer une ligne dans une table de ma base de donnes : Sur une feuille, je place un contrle MSRDC, des contrles Texte et Bouton

Professeur: ASSALE Adj Louis

49/97

INP-HB

Support de Cours

Visual Basic

En mode cration, je mets la proprit DataSource des contrles Texte MSRDC1. Avant lappel de la feuille jcris le code suivant

Dans lvnement click des boutons Nouveau et Enregistrer, on tape les codes respectifs : MSRDC1.Resulset.Addnew et MSRDC1.UpdateRow Pour utiliser la mthode Execute, jefface le contenu de la proprit DataSource des contrles Texte, et dans le click du Bouton Insrer je tape :

.7.2.3.

Programmation dobjets RdoConnection

Avant de programmer un objet RdoConnection, il faut rfrencer la bibliothque RDO par la boite de dialogue des rfrences de la manire suivante : Cliquer sur Projet

Professeur: ASSALE Adj Louis

50/97

INP-HB

Support de Cours

Visual Basic

Cliquer sur Rfrences

Cocher la case Microsoft Remote Data Object 2.0 et Cliquer sur Ok Les objets utiliss sont : rdoConnection qui se comporte comme le contrle MSRDC ; il se dclare de la manire suivante : As New rdoConnection. rdoResultset qui dsigne le jeu denregistrement ; sa dclaration est : As rdoResultset. RdoQuery qui est appropri pour lexcution des requtes ; on le dclare de la manire suivante : As New rdoQuery. Pour excuter une requte SQL, lon peut procder de deux manires : A laide de la mthode Execute ; travers soit un objet rdoQuery soit un objet rdoConnection. Cette mthode est adapte aux requtes actions ne renvoyant aucune ligne, mais peut dans certains cas renvoyer le nombre de lignes affectes dans la proprit RowAffected. Exemple1 : Dim Cn As New rdoconnection Dim Qy As New rdoQuery Dim SQL AS String dfinition de curseur odbc Cn.cursorDriver = rdUseOdbc

Professeur: ASSALE Adj Louis

51/97

INP-HB

Support de Cours

Visual Basic

dfinition de connexion Cn.connect= dsn=MABASE ;uid= ;pwd= tablissement de connexion Cn.EstablishConnection dfinition de la requte SQL = Select * from Etudiant excution Cn.Execute SQL Exemple2 : lobjet rdoQuery sutilise surtout pour excuter les procdures stockes avec paramtres. La manire dont les paramtres sont passs la procdure est dfinie par la proprit Direction qui peut prendre les 4 valeurs constantes suivantes : rdParamInput (valeur 0, le paramtre est utilis pour passer des informations la procdure.) rdParamInputOutput (valeur 1, passer des informations la procdure et partir de celle-ci) rdParamOutput (valeur 2, renvoyer des informations de la procdure comme paramtre de sortie dans SQL) rdParamReturnValue (valeur 3, renvoyer une valeur dtat de renvoi dune procdure). Soit excuter la fonction stocke dfinie en Oracle par : Function ma_fonction (param1 IN Varchar(3), param2 OUT Number, param3 INOUT Varchar(20)) return Number ; Dclaration dun objet rdoQuery Dim ma_requete As rdoQuery prparation de la requte ; Cration dun nouvel objet et ajout la collection rdoQueries Set ma_requete = Cn.CreateQuery _ (Mon_objet, { ? = call ma_fonction( ?, ?, ?)}) Dfinition des paramtres ma_requete(0).Direction = rdParamReturnValue ma_requete(1).Direction = G1 ma_requete(2).Direction = rdParamOutput ma_requete(3).Direction = Assal ma_requete(3).Direction = rdParamOutput ma_requete.Execute A laide de lobjet rdoResultset ; travers soit un objet rdoQuery soit un objet rdoConnection. Cette mthode est adapte aux requtes qui renvoient des lignes. La syntaxe gnrale est : Set variable = connection.OpenResultset(name [,type [,locktype [,option]]]) variable correspond un objet rdoResultsetProfesseur: ASSALE Adj Louis 52/97 INP-HB

Support de Cours

Visual Basic

connection un objet rdoConnection ou un objet rdoQuery name : chane de caractres spcifiant la source des lignes. Cette variable nest valable que pour un objet rdoConnection, pour un objet rdoQuery il faut avoir dfini sa proprit SQL auparavant. Les paramtres type, locktype et option dfinissent respectivement le type de curseur, le contrle daccs concurrentiel et les caractristiques du nouvel objet rdoResultset. Constante type Valeur Description (Valeur par dfaut) Ouvre un objet rdoResultset de type dfilement en avant. Ouvre un objet rdoResultset de type statique. Ouvre un objet rdoResultset de type dynamique. Ouvre un objet rdoResultset de type ensemble de valeurs cls. Description En lecture seule (valeur par dfaut). Accs concurrentiel pessimiste. Accs concurrentiel optimiste bas sur l'identificateur de la ligne. Accs concurrentiel optimiste bas sur les valeurs des lignes. Accs concurrentiel optimiste utilisant des mises jour traites par lots. Valeurs d'tat (status) renvoyes pour chaque ligne mise jour avec succs.

rdOpenForwardOnly 0 rdOpenStatic rdOpenDynamic rdOpenKeyset 1 2 3

Constante locktype rdConcurReadOnly rdConcurLock rdConcurRowVer rdConcurValues rdConcurBatch

Valeur 1 2 3 4 5

Constante option Valeur Description rdAsyncEnable rdExecDirect 32 64 Excute l'opration en mode asynchrone. Valeur par dfaut. Excute la requte sans crer au pralable de procdure stocke. Utilise SQLExecDirect au lieu de SQLPrepare et SQLExecute.

Professeur: ASSALE Adj Louis

53/97

INP-HB

Support de Cours

Visual Basic

Exemple1 : Dim Cn As New rdoconnection Dim Qy As New rdoQuery Dim SQL AS String Dim Rs as rdoResulset dfinition de curseur odbc Cn.cursorDriver = rdUseOdbc dfinition de connexion Cn.connect= dsn=MABASE ;uid= ;pwd= tablissement de connexion Cn.EstablishConnection dfinition de la requte SQL = Select * from Etudiant excution Set Rs = Cn.OpenResultset(SQL, rdOpenForwardOnly, rdoConcurReadOnly) Exemple2 : lobjet rdoQuery sutilise surtout pour excuter des requtes paramtres ou procdures stockes renvoyant plusieurs lignes. Dim Cn As New rdoconnection Dim Qy As New rdoQuery Dim SQL AS String Dim Rs As rdoResultset dfinition de curseur odbc Cn.cursorDriver = rdUseOdbc dfinition de connexion Cn.connect= dsn=MABASE ;uid= ;pwd= tablissement de connexion Cn.EstablishConnection dfinition de la requte Qy.SQL = Select * From Etudiant Where Code_cl = ? ajout de lobjet rdoQuery la collection rdoQueries Set Qy.ActiveConnection = Cn passage de paramtres Qy(0) = I99J1 excution Set Rs = Qy.OpenResultset(rdOpenForwardOnly, rdConcurReadOnly)

Professeur: ASSALE Adj Louis

54/97

INP-HB

Support de Cours

Visual Basic

.7.3. Le modle ADO Avec le modle ADO (ActiveX Data Object), Microsoft franchit un autre pas dans les techniques daccs aux donnes. Le modle ADO permet laccs local et distant aux bases de donnes ; en fait, cest une combinaison amliore des modles DAO et RDO. ADO est une bibliothque dinstructions qui permet de grer de nombreux paramtres pour se connecter des sources de donnes dfinies par un fournisseur daccs aux donnes (OLE DB). Comme dans le modle DAO bas sur une organisation Hirarchique, avec en tte, le moteur Jet DbEngine, les espace de travail Workspaces, les bases de donnes Databases, les requtes Querydefs, les tables Tablesdefs, les enregistrements Recordsets, etc, le modle ADO dispose de 3 objets majeurs qui sont la disposition du programmeur : lobjet Connection qui dtermine les proprits de la connexion vers une base de donnes, lobjet Command qui indique les proprits des tables ou des requtes et lobjet Recordset qui dtermine les proprits des enregistrements. Comme dans le modle RDO, le modle ADO offre plusieurs manires de se connecter des sources de donnes : soit en utilisant un composant ActiveX, le Data control ADODC, soit sans contrle ADODC mais en crant une instance du modle en mmoire, programmation de la technologie de lautomation, soit enfin avec le concepteur DataEnvironment. Remarquons que la mise en place des connexions et de la programmation est plus simple avec un control ADODC quavec la programmation de la technologie de lautomation. Le concepteur DataEnvironment met en place la connexion de faon plus gnrale, la connexion dvient publique toutes les feuilles du projet. Il est accompagn du DataReport qui remplace le composant ActiveX Crystal Report.

.7.3.1.

Le Control ADODC

On linsre par Projet/Composants

Professeur: ASSALE Adj Louis

55/97

INP-HB

Support de Cours

Visual Basic

On dessine ensuite le control dans une feuille et on dfinit les connexions grce aux proprits du control : On clique droit sur le bouton et on choisit Proprits du contrle

Cliquer sur Crer de Utiliser une chane de connexion pour dfinir le fournisseur OLE DB

Professeur: ASSALE Adj Louis

56/97

INP-HB

Support de Cours

Visual Basic

Cliquer sur longlet connexion ou le bouton Suivant pour rentrer les paramtres de connexion

Professeur: ASSALE Adj Louis

57/97

INP-HB

Support de Cours

Visual Basic

Tester la connexion

La connexion est dfinie

Spcifier lauthentification et cliquer sur Appliquer

Slectionner les tables ou les procdures stockes en cliquant sur longlet RecordSource

Professeur: ASSALE Adj Louis

58/97

INP-HB

Support de Cours

Visual Basic

Type de commande AdCmdText AdCmdTable AdCmdStored AdcmdUnknown

Description Indique une chane de texte SQL Indique le nom dune table ou vue Indique le nom dune procdure stocke Indique soit une table soit une requte

Deux proprits importantes du control ADODC sont la proprit LockType qui dfinit le type de verrouillage denregistrement : Type de verrouillage adLockReadOnly adLockPessimistic adLockOptimistic adLockBatchOptimistic Description Valeur par dfaut ; indique un mode de traitement en lecture seule, pas de modification de donnes. Verrouillage pessimiste qui bloque une page denregistrements ds la premire modification. Verrouillage optimiste qui se produit lors dune validation ou aprs la mthode Update. Verrouillage qui bloque un lot denregistrements lors de la validation.

Et la proprit CursorType qui dfinit le type de Recordset :

Constante CursorType

Description

adOpenForwardOnly Curseur en avant seulement. Utilis par dfaut.

Professeur: ASSALE Adj Louis

59/97

INP-HB

Support de Cours

Visual Basic

Identique un curseur statique mais ne permettant que de faire dfiler les enregistrements vers l'avant. Ceci accrot les performances lorsque vous ne devez effectuer qu'un seul passage dans un jeu d'enregistrements. adOpenKeyset Curseur de table de caractres. Identique un curseur dynamique mais ne permettant pas de voir les enregistrements ajouts par d'autres utilisateurs (mais les enregistrements supprims par d'autres utilisateurs ne sont pas accessibles partir de votre jeu d'enregistrements). Les modifications de donnes effectues par d'autres utilisateurs demeurent visibles. Curseur dynamique. Ajouts, modifications et suppressions effectus par d'autres utilisateurs sont visibles et tous les dplacements sont possibles dans le jeu d'enregistrements l'exception des signets, s'ils ne sont pas pris en charge par le fournisseur. Curseur statique. Copie statique d'un jeu d'enregistrements qui vous permet de trouver des donnes ou de gnrer des tats. Ajouts, modifications ou suppressions effectus par d'autres utilisateurs ne sont pas visibles.

adOpenDynamic

adOpenStatic

Placer des contrles TextBox sur la feuille et relier les au control ADODC en renseignant les proprits DataField et DataSource. Comme pour le control Data du DAO, le control ADODC de ADO dispose de lobjet Recordset qui contient les mthodes AddNew, Update, Edit, Delete, MoveFirst, MoveLast, Find, etc, et les proprits BOF et EOF. La plupart des contrles intrinsques de VB peuvent tre lis au contrle ADO, mais pas tous les contrles crs par les dveloppeurs doutils. Le tableau suivant donne une ide des contrles supports par ADO. Contrle Intrinsques (PictureBox, Label, TextBox, CheckBox, ComboBox, ListBox, Image, and OLE) Microsoft Chart Control 6.0 (OLE DB) Supports ADO/DAO ADO

Professeur: ASSALE Adj Louis

60/97

INP-HB

Support de Cours

Visual Basic

Microsoft Data-Bound Grid Control 5.0 Microsoft DATA-Bound List Controls 6.0 Microsoft DataGrid Control 6.0 (OLE DB) Microsoft DataList Controls 6.0 (OLE DB) Microsoft FlexGrid Control 6.0

DAO ADO/DAO * ADO ADO/DAO * DAO

Microsoft Hierarchical FlexGrid Control 6.0 (OLE ADO DB) Microsoft Rich Textbox Control 6.0 ADO/DAO Les contrles marqus avec une toile (*) peuvent tre lis par leur proprit RowSource qu seulement un des deux contrles de donnes (ADO ou DAO). Les contrles sont lis au contrle ADO de la mme manire que pour le contrle DAO travers les proprits DataSource, DataField, RowSource et ListField. Avec le contrle ADO, les contrles lis disposent dune proprit DataFormat qui permet de contrler le format de la saisie.

Professeur: ASSALE Adj Louis

61/97

INP-HB

Support de Cours

Visual Basic

.7.3.2.

Programmation en ADO

Ce qui change dans la programmation ADO sans lutilisation du control ADODC est la dfinition directe dans le code de tous ces paramtres de connexion. Avant dutiliser les objets ADO, il faudrait rfrencer la bibliothque dobjet Microsoft ActiveX Data Objects 2.0 dans la bote de dialogue des rfrences.

Les tapes de la programmation sont : Dfinition des objets de connexion Dim Ct As Adodb.Connection Dim Rc As Adodb.Recordset Set Ct = New Adodb.Connection Dfinition dun fournisseur de donnes OLEDB et ouverture de la connexion. le paramtre ConnectionString dpend du choix de la source de connexion : si on utilise une source de donnes ODBC, les paramtres sont identiques ceux de RDO. Si on utilise un fichier OLE DB ou une chane de connexion, les paramtres sont identioques sauf que dans le premier cas on spcifie le paramtre File Name alors que dans le second cas le paramtre Provider. Ct.Provider = Microsoft OLE DB Provider for Oracle Ct.ConnectionString = Provider=MSDAORA ;User ID=assale ;PassWord=yvann;Data Source = larima8 Ct.open Dfinition dun Recordset pour accder aux enregistrements de la table ou requte, on dfinit une instance du Recordset en mmoire, et on ouvre la table en indiquant le type de curseurs et le type de verrouillages. Lobjet Recordset est utilis pour des requtes renvoyant des lignes Set Rc = New Adodb.Recordset

Professeur: ASSALE Adj Louis

62/97

INP-HB

Support de Cours

Visual Basic

Rc.Open Chercheurs , Ct, AdOpenDynamic, AdLockOptimistic On peut utiliser les mthodes classiques MoveNext, Find, etc pour grer les enregistrements Pour les requtes daction tels que Delete, Update, Create , on peut utiliser la mthode Execute de lobjet Connection Ct.open Ct.Execute Delete * From Chercheurs Where Nom Like %AL% Dfinition dun objet Command un objet Command sert surtout excuter des requtes paramtres ou des procdures stockes, mme des requtes daction On dfinit lobjet commande Dim Cmd As Command Set Cmd = New Command On le relie la connexion Set Cmd.ActiveConnection = Cn - Cas dune requte paramtre On prcise la requte et son type Cmd.CommandText = Select Nom from Chercheur Where pers=? Cmd.CommandType = adCmdText Il nest pas ncessaire de crer la collection Parameters pour la dfinition des paramtres car elle est faite automatiquement par ADO dans ce cas on affecte les valeurs aux paramtres de la manire suivante : la numrotation dans une collection commence par 0 Cmd.Parameters(0).value = Text1.Text on excute la requte en affectant le rsultat un objet Recordset si cest une requte de slection Set Rs = Cmd.Execute si cest une requte daction on peut rcuprer le nombre de lignes affectes par largument de la mthode Execute Cmd.Execute nbre_lignes On peut crer la collection Parameters pour la dfinition des paramtres. Chaque lment de cette collection est un objet Parameter qui dfinit un des paramtres de la requte. Dans notre cas on dfinit un seul objet Parameter car notre requte ne contient

Professeur: ASSALE Adj Louis

63/97

INP-HB

Support de Cours

Visual Basic

quun seul paramtre Dim Prm As Parameter Set Prm = Cmd.CreateParameter(,adBStr,adParamInput,) Cmd.Parameters.Append Prm On valorise les paramtres notons que cette valorisation peut seffectuer laide de la mthode CreateParameter(nom, type, mode_passage, taille, valeur) qui dispose de 5 arguments dfinissant les caractristiques du paramtres Prm.Value = valeur Prm.size = taille - Cas dune procdure stocke On spcifie que le type de la commande est adCmdStoreProc et on prcise le nom de la procdure stocke Cmd.CommandType = adCmdStoreProc Cmd.CommandText = ma_procdure la cration dobjets Parameters ntant pas ncessaire, on peut passer les paramtres en entre par : Cmd(0) = valeur1 Cmd(1) = valeur2

.7.3.3.

Le concepteur Data Environment

Pour utiliser directement le concepteur Data Environment, on peut choisir de crer un projet de donnes.

Professeur: ASSALE Adj Louis

64/97

INP-HB

Support de Cours

Visual Basic

Les diffrents objets de ce nouveau projet sont prsents ci-aprs :

Double-cliquez sur lobjet DataEnvironment1

Connexion une base de donnes Cliquer droit sur lobjet Connection et choisir proprit

Professeur: ASSALE Adj Louis

65/97

INP-HB

Support de Cours

Visual Basic

La fentre des Proprits des liaisons de donnes apparat

les tapes suivre sont identiques celles du control ADODC Dfinition de la source de donnes : pour cela, on insre un objet Command qui peut tre soit une table/vue, une requte ou une procdure stocke. Pour une table, seul longlet Gnral doit tre renseign.

Professeur: ASSALE Adj Louis

66/97

INP-HB

Support de Cours

Visual Basic

Un objet Command peut contenir dautres objets Command, Cliquer droit sur Command1 et choisir Ajouter une commande fille

Dans ce cas il faut renseigner longlet Relation

Professeur: ASSALE Adj Louis

67/97

INP-HB

Support de Cours

Visual Basic

La fentre du DataEnvironment devient :

On peut visualiser les donnes des deux Commands laide de contrle DataGrid. Placer deux contrles DataGrid sur une feuille et renseigner les proprits DataSource avec le nom DataEnvironment et DataMember avec un objet Command. Pour permettre des modifications, il faut choisir le type de verrouillage Optimiste comme le montre la fentre suivante :

quand lon choisit Instruction SQL comme source de donnes, le gnrateur de requte peut tre utilis pour dfinir la requte SQL

Professeur: ASSALE Adj Louis

68/97

INP-HB

Support de Cours

Visual Basic

Soit afficher les nom, domaine et point des chercheurs, Cliquer sur Gnrateur SQL, Choisir dans la fentre Donnes des tables et faire glisser dans la fentre Conception

On peut excuter la requte, en choisissant le menu Requte/Excuter

Professeur: ASSALE Adj Louis

69/97

INP-HB

Support de Cours

Visual Basic

Avec le gnrateur, on peut mme crer des requtes daction, cest--dire des requtes pour insrer, modifier, supprimer des donnes et mme crer une table et ajouter des donnes une autre table

On peut aussi crer des requtes paramtres sur les champs : soit crer une requte permettant dinsrer des donnes dans la table Etudiant, on crit le texte suivant insert into Etudiant values ( ?, ?, ?, ?) dans la zone instruction SQL de lobjet Command Onglet Gnral

Professeur: ASSALE Adj Louis

70/97

INP-HB

Support de Cours

Visual Basic

Dans longlet paramtre, il faudrait prciser les nom , Mode et type des paramtres

Lon peut programmer les objets Command avec Visual Basic : Excution dune instruction SQL Elle seffectue via lobjet DataEnvironment cre et les objets Connection. On utilise la mthode Execute de lobjet Connection quon applique au texte SQL

Professeur: ASSALE Adj Louis

71/97

INP-HB

Support de Cours

Visual Basic

excution de la requte DataEvironment1.Connection1.Execute UPDATE Chercheurs SET Sexe =F WHERE Pers# = 18 Excution de la requte par le nom de la commande soit la requte qui permet dinsrer des donnes dans la table Chercheurs de nom Ins_Cher excution de la commande DataEnvironment1.Ins_Cher si la requte a des paramtres DataEnvironment1.Ins_Cher Text1, Text2, Text3, Text4 Chaque objet Command engendre un objet Recordset dont le nom est rs ; cest--dire si votre objet Command sappelle Cmd le Recordset associ sappellera rsCmd. Les objets Recordset disposent des mthodes MoveFirst, MoveLast, MovePrevious, etc. qui permettent de naviguer dans le jeu denregistrements. On peut galement accder la valeur dun champ du Recordset par la syntaxe rsnom_commade !nom_champ. Programmation des procdures stockes : Insertion dune procdure stocke : on insre une procdure stocke en cliquant sur le bouton Insrer des Procdures Stockes de la fentre du DataEnvironment.

les procdures insres apparaissent nommes de la manire suivante :

Professeur: ASSALE Adj Louis

72/97

INP-HB

Support de Cours

Visual Basic

Excution dune procdure stocke dans Visual Basic : si la procdure stocke est sans paramtre, lexcution se fait laide de la mthode Execute aprs ouverture de la connexion ; so