coursVB.ppt

Embed Size (px)

Citation preview

  • 7/30/2019 coursVB.ppt

    1/117

    Environnement deDveloppement graphique

    (Visual Basic)

    M. Khalid EL HACHEMI

    Tlchargement cours, exemples, TD :

    Adresse: http://ekhalid.magix.net/public/

    I.N.S.E.A 2011 - 2012

  • 7/30/2019 coursVB.ppt

    2/117

    Sommaire

    Introduction Notion dobjet Prsentation de Visual Basic Syntaxe de base Contrles et Proprits Evnements et Mthodes Fonctions prdfinies Fonctions et Procdures utilisateur Transmission des paramtres

  • 7/30/2019 coursVB.ppt

    3/117

    Sommaire

    Types de donnes utilisateur Manipulation des Dates Les botes de message et la fonction InputBox Formatage de donnes (Fonction Format) Contrles avancs (menus et menus

    contextuels les grilles) Gestion des erreur (Lobjet Err) Accs aux bases de donnes

  • 7/30/2019 coursVB.ppt

    4/117

    Introduction

    La programmation

    Problme

    Analyse Algorithme

    Programme

    Excution Rsultat

    Traduction

  • 7/30/2019 coursVB.ppt

    5/117

    Notion dobjet

    Objet:Super-variable(groupe de variables de diffrents types)Les variables sont dsignes par un nom = Proprits

    Exemple 1 : lobjet VoitureProprits: couleur, marque, modle,carburant, puissance fiscale, vitesseMaxi, prix.

    Syntaxe: objet propritVoiture.couleur = rougeVoiture.marque = Peugeot

    p = Voiture.puissanceFiscale

  • 7/30/2019 coursVB.ppt

    6/117

    Notion dobjet

    Exemple 2: lobjet EtudiantProprits: nom, classe, adresse, situation familiale,

    ge, taille, budget, situation/justice.

    utilisation:

    Etudiant.ge = 23Etudiant.Budget = Etudiant.Budget + 100n = Etudiant.nom

  • 7/30/2019 coursVB.ppt

    7/117

    Notion dobjet

    Mthodes= fonctions de lobjet

    Exemple: VoitureAcclrer, ralentir, avancer, reculer, sarrter.

    Syntaxe: objet Mthode()

    Voiture.acclrer()Voiture.reculer(10 m)Voiture.changerCouleur(bleu)

    Voiture.couleur= bleu

  • 7/30/2019 coursVB.ppt

    8/117

    Notion dobjet

    Exemple 2: Mthode de lobjet : EtudiantRussir, Redoubler, Tricher, sabsenter,

    prparerExamen, AugmenterBudget.

    Syntaxe: objet Mthode()

    Etudiant.Russir()Etudiant.Sabsenter(2)Etudiant.AugmenterBudget(100)Etudiant.Budget = Etudiant.Budget + 100

  • 7/30/2019 coursVB.ppt

    9/117

    Prsentation de visual basic

    Sauvegarde: fichier projet .vbp

    Feuilles .frm

  • 7/30/2019 coursVB.ppt

    10/117

    Prsentation de visual basic

  • 7/30/2019 coursVB.ppt

    11/117

    Syntaxe de base

    Variables:

    Noms de variables:1-Pas de longueur maximale2-Commence par un caractre: 12xy3-Pas despace: date_de_naissance date de naissance

    4-Pas de sensibilit la casse (toto=Toto=ToTO)

  • 7/30/2019 coursVB.ppt

    12/117

    Syntaxe de base

    Variables:Types:Boolean : True False

    Byte : 0 255Integer : -32 768 32 767Long : -2 2 milliardsSingle : rels avec 6 chiffres dcimaux (x=10/3; 3,333333)

    Double : rels avec 14 chiffres dcimauxString : chanes de caractresDate : Date et heureVariant: entier, rel, chane, boolen, Objet : objets VB (Contrles, feuilles,..)

  • 7/30/2019 coursVB.ppt

    13/117

    Syntaxe de base

    Dclaration des Variables:

    Dclaration optionnelle (! Mmoire vive) Porte des Variables:1-Niveau Procdure : Dim NomVariableAsType

    2-Niveau Form : Dim NomVariable asType3-Niveau Projet (module) : Public NomVariableAsType

    Exemple:Dim i As integer, Public b As boolen

  • 7/30/2019 coursVB.ppt

    14/117

    Syntaxe de base

    Variables indices (Tableaux):Dclaration obligatoire!!

    1- Taille connue lavance :DimMonTableau(n)As Integer

    DimMonTableau(11)As Integer (indices : de0 11 => 12 lments)2- Tableau dynamique : DimMonTableau( )As Integer3- Mes propres indices : Dim MonTableau(2 to 5) As Integer4- Taille fixe ultrieurement : RedimMonTableau(10)

    Prserver les valeurs existantes :RedimPreserveMonTableau(11)

    Les Matrices (mmes rgles que les tableaux!)

    Dim Mat(2,3) As Integer

  • 7/30/2019 coursVB.ppt

    15/117

    Syntaxe de base

    Oprateurs

    Oprateurs numrique : + - * /Oprateurs boolens : And Or Xor NotOprateur caractre : & (concatnation)

    \ : Division entire^ : puissanceMod : reste de la division entire

  • 7/30/2019 coursVB.ppt

    16/117

    Syntaxe de base

    Lalternative(si..sinon..)

    If(Conditions) ThenListe dinstructionsEnd If

    If(Conditions) ThenListe dinstructions

    ElseListe dinstructionsEnd If

    If(Conditions) ThenListe dinstructions

    Elseif(Conditions) ThenListe dinstructionsElseif(Conditions) ThenListe dinstructions

    ElseListe dinstructions

    End If

  • 7/30/2019 coursVB.ppt

    17/117

    Syntaxe de base

    Select case x

    case 0

    instructionscase 1 to 6

    case else

    instructions

    End Select

    Select case :

  • 7/30/2019 coursVB.ppt

    18/117

    Syntaxe de base

    Les Boucles

    Forx = a to b Step c

    Liste dinstructionsNext x

    Exemple :Fori = 1 to 10

    s = s + i

    Next i

    Fin prmature (Exit For)

    Fori = 1 to 10Ift(i) = c then

    Trouv = true

    Exit ForEnd if

    Next i

  • 7/30/2019 coursVB.ppt

    19/117

    Syntaxe de base

    While (Conditions) Do While (condition de continuit)

    Liste dinstructions instructions

    Wend Loop

    Do Until (condition darrt)

    instructions

    Loop

    Les Boucles (test avant excution)

  • 7/30/2019 coursVB.ppt

    20/117

    Syntaxe de base (complment)

    Do

    instructions

    LoopWhile (condition de continuit)

    Do

    instructions

    Loop Until (condition darrt)

    Les Boucles (test aps excution)

    Exemple

    http://localhost/var/www/apps/ExemplesVb/Loop/loop.vbphttp://localhost/var/www/apps/ExemplesVb/Loop/loop.vbphttp://localhost/var/www/apps/ExemplesVb/Loop/loop.vbp
  • 7/30/2019 coursVB.ppt

    21/117

    Contrles et Proprits

    Proprits Signification

    BackColor Dfinit la couleur d' arrire plan

    BorderStyle Dfinit le style de la bordure d' un objet

    Caption Dfinit le texte dans la barre de titre de la feuille

    ControlBoxDtermine si les boutons du menu systme en haut droitedans la barre de titre de la feuille sont affichs.

    Enabled Dtermine si l' objet peut rpondre aux vnements, c'est dire s'il est utilisable.

    Font Dfinit une police, un style et une taille de caractre

    ForeColor Dfinit la couleur de premier plan

    Height Dfinit la hauteur de l' objet partir du haut

    Icon Indique l' icne qui est affiche quand la feuille est rduite

    Le contrle Form

  • 7/30/2019 coursVB.ppt

    22/117

    Proprits Signification

    Left Indique la position horizontale gauche l' excution de la feuille

    MaxButton Dfinit si une feuille contient un bouton "Agrandissement"

    MidiChild Dfinit si une feuille est considre comme feuille enfant MIDI

    MinButton Dfinit si une feuille contient un bouton "Rduction"

    MouseIcon Dfinit une icne de souris personnalise

    MousePointer Dfinit le type de pointeur de sourisPicture Dfinit un graphisme utiliser

    tag Permet de stocker des informations supplmentaires

    Top Dtermine la position verticale de l' objet excution

    Width Indique la largeur de l' objet

    Le contrle Form

    Contrles et Proprits

    Exemple

    http://localhost/var/www/apps/ExemplesVb/Titre/Titre.frmhttp://localhost/var/www/apps/ExemplesVb/Titre/Titre.frmhttp://localhost/var/www/apps/ExemplesVb/Titre/Titre.frm
  • 7/30/2019 coursVB.ppt

    23/117

    Contrles visuels standards

    Contrles et Proprits

  • 7/30/2019 coursVB.ppt

    24/117

    Contrles et Proprits

    textBox (calculette)

    Exemples :

    textBox

    AutresExemples

    http://localhost/var/www/apps/ExemplesVb/txtBox/Calculette.frmhttp://localhost/var/www/apps/ExemplesVb/txtBox/Concat%C3%A9nateur.frmhttp://localhost/var/www/apps/ExemplesVb/txtBox/Concat%C3%A9nateur.frmhttp://localhost/var/www/apps/ExemplesVb/txtBox/Concat%C3%A9nateur.frmhttp://localhost/var/www/apps/ExemplesVb/txtBox/Calculette.frm
  • 7/30/2019 coursVB.ppt

    25/117

    Principales Proprits

    Proprit Description

    Namepermet d'identifier un contrle dans le code. VB attribue des nom par dfautexemple: Label1, Label2,, Text1,.

    Caption

    Etiquette qui accompagne un objet (Label, CommandButton, OptionButton,

    CheckBox, Frame

    BackColorcouleur de fond d'un contrleRemarque: pour dfinir une couleur on utilise la fonction RGB(rouge, vert, bleu)

    ForeColor Couleur du text d'un contrle

    Height hauteur d'un contrle en twip (Twentieth of a Point) = 1cm/567

    Width largeur

    Top distance en twip qui spare le bord sup du contrle du bord sup de la feuille

    Left - - - - - - - - - - - - - - - - - - - - - - - - - gauche du contrle du bord gauche - - - -

    Alignement Alignement du text dans un contrle: 0 = gauche, 1 = droite, 2 = centre

    Enabled

    permet d'autoriser un contrle ragir ou non un vnement,

    ( = true -->ragit) Exemple

    http://localhost/var/www/apps/ExemplesVb/enabled/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/enabled/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/enabled/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/enabled/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    26/117

    Principales Proprits

    Proprit Description

    Visible permet de rendre un contrle visible ou non

    Text dtermine le contenu d'une zone de texte pour : textBox et ComboBox

    MaxLength dtermine la longuer maximale d'un texte dans un TextBox

    PassWordChar dtermine le caractre masque des caractres taps dans un TextBox :*****

    Locked permet de verrouiller une zone de texte quand elle prend la valeur true

    TabIndex dtermine l'ordre de tabulation d'un contrle dans la feuille (0, 1, 2,..)

    AutoSizedtermine si un contle Label est automatiquement redimentionn pourafficher la totalit de son contenu

    Value dtermine la valeur d'un contrle (true, false | 0,1,2 )Min Valeur minimale pour un une barre de dfilement

    Max Valeur maximale pour un une barre de dfilement

    SmallChangedtermine le pas de deplacement de l'assenseur lorsqu'on clique sur lesflches

    LargeChange

    dtermine le pas de deplacement de l'assenseur lorsqu'on clique sur sur

    une zone de la barre

  • 7/30/2019 coursVB.ppt

    27/117

    Principales Proprits

    Proprit Description

    FontSizedtermine la taille des caractres : Label, TextBox, CommandButton,OptionButton, Frame, CheckBox

    FontBold Caractres en gras si true

    FontName nom de la police de caractres d'un text

    UnderLine Soulignement si true

    FontStrike barr si true

    FontItalic caractres en italique si true

    MultiSelectmode de selection de lments d'une liste ( 0 = 1 seul, 1 = plusieurs lments,2 = plusieurs blocs d'lments)

    ListCount nombre total d'lmnts dans une liste

    SelCount nombre d'lments selectionns dans une liste

    ListIndex position de l'lment slctionn ( -1 si aucun)

    Selected renvoi true si un lment est slectionn ( List1.Selected(2) )

    List Contenu d'un lment de la liste spcifi par sa position (List1,List (10) )

    Sorted parmet le remplissage d'lment avec tri automatique (ordre croissant) exemple

    http://localhost/var/www/apps/ExemplesVb/sorted/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/sorted/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    28/117

    Principales Proprits

    Proprit Description

    Rows nombre total de lignes dans une grille

    Cols nombre total de colonnes dans une grille

    FixedRows nombre de lignes fixes dans une grille

    FixedCols nombre de colonnes fixes dans une grille

    Row position de la ligne slectionne l'excution

    Col position de la colonne slectionne l'excution

    TextMatrix contenu d'une case de la grille (grille1.TextMatrix(num ligne, num colonne)

    Intervalnombre de millisecondes entre les appels un vnement Timer du contrleTimer exemple

    http://localhost/var/www/apps/ExemplesVb/Timer/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Timer/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Timer/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Timer/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    29/117

    vnements & Mthodes associes

    Evnement= Action produite par lutilisateur (click, survol .) oupar le systme (Timer) au moment de lexcution sur un contrle

    Contrle

    Evnement 1

    Evnement 2

    Evnement i

    Procdure 1

    Procduret 2

    Procdure i

    Syntaxe : Private Sub Objet_vnement([arguments])

    exemple: Private SubCommand1_Click( )

    Private Sub Check1_GotFocus(IndexAs Integer)

  • 7/30/2019 coursVB.ppt

    30/117

    Principaux vnements

    1- Click

    Se produit lorsque lutilisateur appuie puis relche le bouton gauche de la

    souris (ou entre si le contrle a le focus)Private SubObjet_Click( [IndexAs Integer])

    2- DblClick

    Se produit lorsque lutilisateur ralise un double click

    Private SubObjet_DblClick( [IndexAs Integer])3- GotFocus

    Se produit lorsquun contrle reoit le focus (click ou tabulation ou par

    code : Objet.SetFocus)

    Private SubObjet_GotFocus( [IndexAs Integer])

  • 7/30/2019 coursVB.ppt

    31/117

    Principaux vnements

    4- LostFocus >>>

    Se produit lorsquun contrle perd le focus

    Private SubObjet_LostFocus( [IndexAs Integer])

    5-KeyPress >>>

    Se produit lorsque lutilisateur appuie et relche une touche du clavier

    Private SubObjet_KeyPress( [IndexAs Integer], KeyAsciiAs Integer)

    Codes : 0 : 48 | 9 : 57 | A : 65 | Z : 90 | a : 97 | z : 122 | entrer : 13 >>>

    6- Change

    Se produit lorsque le contenu dun contrle change

    Private SubObjet_Change( [Index as Integer])

    http://localhost/var/www/apps/ExemplesVb/Focus/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/KeyPress/Projet2.vbphttp://localhost/var/www/apps/ExemplesVb/CodeAscii/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/CodeAscii/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/KeyPress/Projet2.vbphttp://localhost/var/www/apps/ExemplesVb/Focus/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    32/117

    Principaux vnements

    7- Timer

    Se produit chaque fois que la priode de temps fixe par la proprit

    interval dun contrle Timer sest coulePrivate SubObjet_Timer( [IndexAs Integer])

    8- Autres vnements lis la souris

    MouseDown

    MouseUp

    MouseMove >>>

    http://localhost/var/www/apps/ExemplesVb/MouseMove/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/MouseMove/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    33/117

    Mthodes associes

    Mthode= sous programme propre au contrle qui, en sexcutant,permet deffectuer une action donne

    Utilisation: Objet.Mthode [Liste darguments]

    Quelques mthodes :

    1- SetFocus : envoi le focus un contrle qui peut le recevoir (Enabled = Trueet Visible = True) appel : Objet.SetFocus

    2- AddItem : ajoute un lment dans un contrle List ou ComboBox

    Appel : List1.addItemelement

    3- RemoveItem: supprime un lment dune liste, llment est spcifi par sa

    position Appel : List1.RemoveItemposition

  • 7/30/2019 coursVB.ppt

    34/117

    Mthodes associes

    Quelques mthodes :

    4- Clear: supprime tous les lment dune liste >>>

    appel : List1.Clear

    5- Move : deplace un contrle vers de nouvelles coordonnes (gauche, haut)

    Appel : Objet.Move 100, 500 >>>

    http://localhost/var/www/apps/ExemplesVb/ListEtOption/listeEtOption.vbphttp://localhost/var/www/apps/ExemplesVb/Move/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Move/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ListEtOption/listeEtOption.vbp
  • 7/30/2019 coursVB.ppt

    35/117

    Fonctions Prdfinies

    Fonction : sous programme qui reoit un ensemble de donnesdentre, effectue un traitement et qui renvoie un et un seulrsultat

    Donnes dentre :Arguments

    Rsultat calcul : retourn par lenom de la fonction

    Fonctions prdfinies : offertes par Visual Basic(mathmatique, chanes, boolennes, conversion, fichiers )

  • 7/30/2019 coursVB.ppt

    36/117

    1- Fonctions Numriques

    Fonction Description Type rsultat exemple

    Abs(x) Valeur absolue numrique a=Abs(-3,4) 3,4

    Sqr(x) Racine carre numrique a=Sqrt(25) 5

    Fix(x) Partie entire entier a=Fix(3,62) 3a=FIx(-3,21)-3

    Int(x) Plus grand entier < x entier a=Int(3,62) 3

    a=Int(-3,21)-4

    Sgn(x) Signe de x entiera=Sgn(3) 1a=Sgn(0) 0

    a=Sgn(-3)-1

    Rnd Nombre alatoire[0, 1[

    rel x=Rnd ?

  • 7/30/2019 coursVB.ppt

    37/117

    1- Fonctions Numriques

    Gnrer un nombre entier alatoire entre a et b:

    X = Fix ( Rnd * (b a + 1) + a )

    Changer la valeur de dpart Randomize Timer >>>

    Exercice : Loto

    http://localhost/var/www/apps/ExemplesVb/Rnd/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Rnd/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    38/117

    2- Fonctions chanes

    Fonction Description Type

    rsultat

    exemple

    Len(ch) Longueur de ch entier a=Len(Insea) 5

    Asc(ch) Code Ascii du 1er

    caractre de ch entier a=Asc(Insea) 73

    Chr(x) Caractre dont le codeAscii = x

    string a=Chr(103) g

    Ucase(ch) conversion enmajuscules

    string

    Lcase(ch) Conversion enminiscules

    string

    Space(x) Chane forme de xespaces

    string a=Space(3)

  • 7/30/2019 coursVB.ppt

    39/117

    2- Fonctions chanes

    Fonction Description Type

    rsultat

    exemple

    Ltrim(ch) limine les espace degauche

    string Ltrim( salut)salut

    Rtrim(ch) limine les espace dedroite

    string Rtrim(Insea )Insea

    Trim(ch) limine les espace degauche et de droite

    string Trim ( Insea ) Insea

    String(n,c) Chane forme de n foisle caractre c

    string String(3, A)AAA

    Left(ch,n) Chane forme de ncaractres de gauche

    string Left(insea,2)in

    Right(ch,n) Chane forme de ncaractres de gauche

    string Right(insea,3)sea

    Mid(ch,p,n) Chane forme de n

    caractres partir de p

    string Mid(abcdef,4,2)de

  • 7/30/2019 coursVB.ppt

    40/117

    3- Fonctions de conversion

    Fonction Description Type

    rsultat

    exemple

    Str(x) Convertit x en chane string Str(123) 123

    Val(ch) Convertit ch en entier entier Val(123) 123

    CSng(ch) Convertit ch en rel rel CSng(103,41) 103,41CSng(2,5e3) 2500

    DateValue(ch) Convertit ch en date date DateValue(05/02/1976)

    05/02/1976

    CVDate(ch) Convertit ch enmoment (date et heure)

    date CVDate(14/02/2006 3:40:00) 14/02/2006 3:40:00

    Date Date systme date

    Time Heure systme date

    now Date et heure systme date

  • 7/30/2019 coursVB.ppt

    41/117

    Autres Fonctions de conversion

    Les fonctions ci-dessous convertissent une expression en untype de donnes spcifique.

    Syntaxe : CBool( expression)CByte( expression)CDate( expression)CDbl( expression)CDec( expression)

    CInt( expression)CLng( expression)CSng( expression)CStr( expression)CVar( expression)

  • 7/30/2019 coursVB.ppt

    42/117

    Oprations sur les dates

    Nombre de jours qui spare deux dates:

    Nbj = Date1 Date2

    Dure en jours entre deux horaires

    H1 = TimeValue(11:00:00)

    H2 = TimeValue(17:00:00)

    X = H2 H1 = 0,25

    dterminer une nouvelle date partir dune ancienne date + n jours- Quelle date seront nous aprs 20 jours?

    D2 = Date + 20

  • 7/30/2019 coursVB.ppt

    43/117

    Fonctions Utilisateur

    Syntaxe:

    [Public | Private] Function NomFonction([Liste arguments])AsType

    Instructions

    NomFonction = expression

    End Function

    Exemple

    Function Racine (N As Double) As Double

    If N < 0 Then ' value l'argument.

    Exit Function' Quitte pour revenir la ' procdure appelante.

    Else ' Renvoie la racine carre.

    Racine = Sqr(N)

    End If

    End Function

  • 7/30/2019 coursVB.ppt

    44/117

    Procdures Utilisateur

    Syntaxe:

    [Public | Private] Sub NomProcedure([Liste arguments])

    Instructions

    End Sub

    Exemple

    Private Sub Init( )Nom.Text = ""Prnom.Text = ""End Sub

    Appel

    Call Init >>> TP

    http://localhost/var/www/apps/ExemplesVb/Proc%C3%A9dure/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Proc%C3%A9dure/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    45/117

    Transmission des paramtres

    Deux modes de transmission :

    1- Par rfrence(ByRef) Mode par dfaut

    Private Sub Toto ( ByRefY as Integer)Private Sub Toto (Y as Integer)

    Private Function Carre(X as Double)Carre = X * X

    End Function

    2- Par valeur( ByVal )

    Private Sub Dodo ( ByVal Y as Integer) >>>

    http://localhost/var/www/apps/ExemplesVb/transmission/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/transmission/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    46/117

    Types dfinis par lutilisateur

    Dclaration : (dans un module !!!)

    [Private | Public] Type NomType

    Var1 as typeVar2 as type

    . . . . .

    End Type

    Utilisation :Public nAs NomTypen.Var1 = expression

  • 7/30/2019 coursVB.ppt

    47/117

    Manipulation de Date

    DateAdd(m,3,31-jan-95)DateDiff(d,01/01/2005,16/05/2006)DatePart(q,Date)

    Year(Date)Month(Date)MonthName(2, true)WeekDay(Date)weekdayName(3, false, VbSunday)Day(Date)

    Hour(Time)Minute(Time)Second(Time)

    >>>

    Valeur Description

    yyyy Anne

    q Trimestre

    m Moisy Jour de l'anne

    d Jour

    w Jour de la semaine

    ww Semaineh Heure

    n Minute

    s Seconde

    http://localhost/var/www/apps/ExemplesVb/dateDiff/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/dateDiff/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    48/117

    MsgBox - Instruction ou fonction ?

    Cette instruction trs utilise dans Visual Basic permet de poser unequestion l' utilisateur au travers d' une bote de dialogue.

    Syntaxe:Variable = MsgBox("Message", Type, "Titre de la fentre")

    Variable : Variable de type Entier(Integer) recevant la valeur du bouton

    Message : Chane de caractres affiche comme message dans la botede dialogue

    Type : Expression numrique qui contrle les boutons et les icnes afficher.

    Titre : Expression chane affiche dans la barre de titre de la bote dedialogue.

  • 7/30/2019 coursVB.ppt

    49/117

    MsgBox (type)

    Les constantes pour les boutons

    Constante VB Chiffre Affichage

    vbOKOnly 0le bouton OK uniquementvbOKCancel 1 les boutons Ok et Annuler

    vbCancelRetryIgnore 2 les boutons Abandonner,

    Rpter et Ignorer

    vbYesNoCancel 3 les boutons Oui, Non et AnnulervbYesNo 4 les boutons Oui et Non

    vbRetryCancel 5 les boutons Rpter et Annuler

  • 7/30/2019 coursVB.ppt

    50/117

    Constante VB Chiffre Affichage

    vbCritical 16 l'icne erreur critique

    vbQuestion 32 l'icne question

    vbExclamation 48 l'icne message d'avertissement

    vbInformation 64 l'icne message dinformation

    Les constantes pour les icnes

    MsgBox (type)

    MsgBox "Erreur fatale, division par 0", vbCritical

  • 7/30/2019 coursVB.ppt

    51/117

    Constante Chiffre Description

    vbDefaultButton1 10 Le 1er bouton est le bouton par dfaut

    vbDefaultButton2 256 Le 2me bouton est le bouton par dfaut

    vbDefaultButton3 512 Le 3me bouton est le bouton par dfaut

    Les constantes pour le bouton par dfaut

    MsgBox (type)

  • 7/30/2019 coursVB.ppt

    52/117

    Exemple

    x = MsgBox("Echec de connexion!", vbDefaultButton2 + vbAbortRetryIgnore + _

    vbInformation, "titre")

    MsgBox

  • 7/30/2019 coursVB.ppt

    53/117

    Constante Chiffre DescriptionvbOk 1 OK

    vbCancel 2 Annuler

    vbAbort 3 Abandonner

    vbRetry 4 RessayervbIgnore 5 Ignorer

    vbYes 6 Oui

    vbNo 7 Non

    Les constantes renvoyes par MsgBox

    MsgBox (constantes renvoyes)

  • 7/30/2019 coursVB.ppt

    54/117

    La fonction : InputBox

    SyntaxeInputBox (prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

    x = InputBox("quel est votre ge?", "Age", , 1000, 2000)

    X = ""

  • 7/30/2019 coursVB.ppt

    55/117

    La fonction Format( )

    Format(expression__formater, format_donn)

    expression__formater :

    1- chane de caractre

    2- numrique

    3- date

  • 7/30/2019 coursVB.ppt

    56/117

    La fonction Format( )

    1- chane de caractre

    Caractre deFormatage

    Description

    @Un caractre apparat la position @& Un caractre sil existe apparat la position &

    < Convertit en minuscules

    > Convertit en majuscules

    Important !!: les @ et & sappliquent de droite gauche

    Exemples:

    Format("022554466", "@@@-@@-@@-@@")

    Format("022554466", "&&&&-&&&-&&&")

    Format("Intressant", ">")

    022-55-44-66

    022-554-466

    INTERESSANT

  • 7/30/2019 coursVB.ppt

    57/117

    La fonction Format( )

    1- numrique

    Caractre deFormatage

    Description

    0 Un chiffre apparat la position 0

    # Un chiffre sil existe apparat la position #

    . Point dcimal

    , Sparateur de milliers

    Exemples:

    Format (3456.199,"# # #,# # #.00")Format(3456.199, "000,000.00")

    Format(0.199, "# #.# #")

    Format(0.199, "#0.00")

    3 456.20

    003 456.20

    .2

    0.20

  • 7/30/2019 coursVB.ppt

    58/117

    La fonction Format( )

    1- Date

    Caractre deFormatage

    Description

    d Affiche le jour sans zro non significatif (1 31)

    dd Affiche le jour avec un zro non significatif (01 31)

    ddd Affiche le jour en lettre sous sa forme abrge (lun-dim)

    dddd Affiche le jour en lettre sous sa forme complte (lundi)

    m 1-2-3 -..12

    mm 01-02-03 - 12mmm jan-fv- .. dc

    mmmm Janvier- .dcembre

    y Jour de lanne (1-366)

    yy Anne avec 2 chiffres (00-99)

    yyyy Anne avec 4 chiffres (100-9999)

  • 7/30/2019 coursVB.ppt

    59/117

    Linstruction With

    With Text1.BackColor = vbRed

    .BorderStyle = 1.Alignment = 2With .Font

    .Bold = True

    .Size = 14End With

    End With

  • 7/30/2019 coursVB.ppt

    60/117

    Contrles avancs

    Les menus :

  • 7/30/2019 coursVB.ppt

    61/117

    Contrles avancs (les menus)

    Application raliser

    http://localhost/var/www/apps/ExemplesVb/Menus/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Menus/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    62/117

    Contrles avancs

    Les menus contextuels (PopupMenu) :

    Un menu contextuel est un lment du menumais invisible!

    Dmonstration

  • 7/30/2019 coursVB.ppt

    63/117

    Gestion des erreurs

    Linstruction On Error

    Exemple :Public Sub Divise()

    On Error GoTo OopsTata = 12 / 0Exit SubOops:Msgbox("Diviser par zro, cest pas malin !")

    End Sub

  • 7/30/2019 coursVB.ppt

    64/117

    Rcupration des erreurs

    Lobjet Err

    Cet objet, qui ntant pas un contrle, ne possde pas dexistence

    graphique, est utilis par toute application pour stocker ltat desErreurs quelle a ventuellement provoques. On pourra, dans lecode, avoir recours diffrentes propritsde lobjet Err:

    Number: dsigne le code de cette erreur, permettant didentifierson type

    Description : il s'agit d'un rapide bla-bla sur la nature de lerreurSource: qui indique lobjet lorigine de lerreur

  • 7/30/2019 coursVB.ppt

    65/117

    Rcupration des erreurs

    Lobjet Err

    Exemple:

    Public Sub Divise()On Error GoTo OopsTata = 12 / 0Exit Sub

    Oops:Msgbox "Erreur numro: "& Err.Number & Err.Description

    End Sub

  • 7/30/2019 coursVB.ppt

    66/117

    Gestion des fichiers

    Etape 1:OuvertureLe systme rserve une place en mmoire pour permettre laccs au

    fichier par lapplication. Elle est ralise par linstruction : Open(si le fichier nexiste pas, elle le cre !!)

    Etape 2:Traitement du fichierLectures ou critures de donnes. Il est possible aussi de se

    positionner dans le fichier un endroit quelconque

    Etape 3:Fermeture du fichierLe systme libre la mmoire rserve. Elle est ralise parlinstruction : Close

  • 7/30/2019 coursVB.ppt

    67/117

    Gestion des fichiers

    Accs squentiel (ouverture)

    1- En lecture seule:Input

    2- En criture:OutputAttention ! : le fichier est rinitialis vide et son contenu prcdent

    est perdu

    3- En Mise jour (ajout):AppendLe contenu prcdent est conserv, et lcriture dans le fichier ajoutede nouveaux enregistrement

    Exemple: Open "Monfich.txt" ForInput As #1

    Open "Monfich.txt" ForAppend As #1

  • 7/30/2019 coursVB.ppt

    68/117

    Gestion des fichiers

    Accs squentiel

    Exemple: Open "Monfich.txt" ForInput As #1

    Open "Monfich.txt" ForAppend As #500

    Remarque :

    De 1 255 : accs exclusif au fichier, les autres applications nepeuvent pas y accder tant quil est ouvert

    De 256 511: fichier partag avec dautres applications

  • 7/30/2019 coursVB.ppt

    69/117

    Gestion des fichiers

    Accs squentiel

    Lecture : Open C:\contact.txt" ForInput As #1Line Input #1, ligne

    Ecriture : Open C:\contact.txt" ForAppend As #1nom = txtnomprenom = txtprenomtel = txttelPrint #1, nom & prenom & tel

    Important : un enregistrement est compos de plusieurs champs (variables

    String) de taille fixe :

    Dim nomAs String * 20Dim prenomAs String * 20Dim telAs String * 9

  • 7/30/2019 coursVB.ppt

    70/117

    Gestion des fichiers

    Lecture squentielle

    Line Input #1, ligne

    toto tata 111111111

    fofo fifi 222222222

    salah salim 333333333

    mohamed mahmoud 444444444

    >>>

    EOF(1) = True

    http://localhost/var/www/apps/ExemplesVb/fichiersSansList/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/fichiersSansList/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    71/117

    Gestion des fichiers

    Accs Direct (Random)

    Open "Monfich.txt" For Random As # 1 Len = tailleEnregistrement

    Exemple: Open App.Path & "\test.txt" ForRandom As #1 Len = Len(contact)

    Lecture : Get numFichier, numEnregistrement, variable

    Exemple: Get 1, 3, contact

    (retourne le 3meenregistrement et laffecte la variable contact)

    Ecriture : PutnumFichier, numEnregistrement, variable

    Exemple: Put1, 5, contact

  • 7/30/2019 coursVB.ppt

    72/117

    Gestion des fichiers

    Accs Direct (Random)

    Remarque: La variable contact est une variable de type compos

    Public Type enregistrement (dclaration dans un module !!)

    nomAs String * 20prenomAs String * 20telAs String * 9End Type

    Ensuite: quelque part dans le code

    Dim contactAs enregistrementOpen App.Path & "\test.txt" ForRandom As #1 Len = Len(contact)Get 1, 1, contacttxtnom = Trim(contact.nom)txtprenom = Trim(contact.prenom)

    txttel = Trim(contact.tel) >>>

    Accs aux bases de

    http://localhost/var/www/apps/ExemplesVb/fichiers-acc%C3%A8sDirect/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/fichiers-acc%C3%A8sDirect/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    73/117

    Accs aux bases dedonnes

    Le langage SQL

    LDD : Langagede Dfinition de Donnescration, modification et suppression dobjets de base de donnes

    (Tables, champs, contraintes )

    LMD : Langagede Manipulation de DonnesExtraction de donnes

    Regroupement et synthse de donnes

    Jointure des tables

    Modification de donnes (mise jour et suppression)

    LMD : Langagede Contrle de Donnes

    Gestion des utilisateurs (connexionx, droits daccs, mots de passe)

  • 7/30/2019 coursVB.ppt

    74/117

    Le langage SQL

    1. Extraction de donnes

    SELECTchamp [, champ2]FROM table

    WHERE conditionORDERBY champ [ASC | DESC]

    Utilisation de la clauseSELECT

    Exemple: 1- SELECT CodeFact, DateFact, Montant * 1.2

    FROM FactureORDERBY DateFact

    2- SELECT *FROM Facture

  • 7/30/2019 coursVB.ppt

    75/117

    Le langage SQL

    Utilisation de la clauseWHERE

    Exemple: SELECT CodeFact, DateFact, Montant * 1.2

    FROM FactureWHERE Montant > 10 000And DateFact < # 31/12/2005 #

    ORDER BYDateFact

    Oprateurs: = < > = Between a And bAnd Or Xor Not

    IN

    Like

  • 7/30/2019 coursVB.ppt

    76/117

    Le langage SQL

    Utilisation de la clauseWHERE

    Exemple: SELECT Personnes.Nom, Personnes.PrnomFROM PersonnesWHERE Personnes.Nom Like "c*"

    * : designe 0 ou plusieurs caractres? : Dsigne un caractre

    Question : Personnes dont le nom est compos de 5 caractre ?SELECT Personnes.Nom, Personnes.PrnomFROM PersonnesWHERE Personnes.Nom Like "?????"

    Au moins 5 caractre : Like "?????*"Contient la lettre b : Like "*b*"Ne contient pas la lettre b : Not Like "*b*"

  • 7/30/2019 coursVB.ppt

    77/117

    Le langage SQLlimination des doublons : (DISTINCT)

    SELECT Distinct TypeFROM Produit

    Limitation de nombre de lignes renvoyes par une requte :

    SELECT TOP 10 nomProduitFROM Produit

    Question : nom des 3 tudiants les mieux classs ainsi que leurs moyennes?SELECT TOP 3 nom, moyenneFROM Resultat

    ORDER BY moyenne DESC

    Question : nom et moyenne du dernier de la classe ?SELECT TOP 1 nom, moyenneFROM ResultatORDER BY moyenne

  • 7/30/2019 coursVB.ppt

    78/117

    Le langage SQL2.Regroupement et synthse de donnes

    Fonctions dagrgation :

    SUM : somme

    AVG : moyenneMIN : minimumMax : maximumCOUNT : nombre de lignes

    SELECT MAX(moyenne) ( ou MAX(DISTINCT(moyenne) ) )

    FROM Resultat

    SELECT COUNT(*)FROM Employe (nombre demploys dans lentreprise)

    SELECT SUM(Salaire)FROM Employe (masse salariale)

  • 7/30/2019 coursVB.ppt

    79/117

    Le langage SQL- Regroupement avec GROUP BY

    SELECT Type, MAX(Prix), MIN(Prix)FROM ProduitsGROUP BY TypeORDER BY Type

    Important: tout champ qui nest pas contenu dans une fonction dagrgation doit figurerdans la clause GROUP BY

    Question : types de produits dont le prix maximum dpasse 1000 DH?SELECT Type, MAX(Prix)FROM Produits

    GROUP BY TypeHAVING MAX(Prix) > 1000

    Important: la clause WHERE exprime des conditions sur les champs (application avantregroupement) alors que la clause HAVING exprime des condition sur legroupe (application aprs regroupement)

  • 7/30/2019 coursVB.ppt

    80/117

    3.Jointure des tables: jointures internes

    Pere Fils

    numPere Nom prenom

    1 Salmi Mohamed

    2 Bahi Rida3 Alami Khalil

    4 Rizki Rachid

    numPere prenom

    1 Slimane

    1 salima

    3 Laila

    SELECT Pere.Nom, Fils.Prenom

    FROM Pere Join Fils

    On Pere.numPere = Fils.numPere

    Nom prenom

    Salmi Slimane

    Salmi salima

    Alami Laila

    La requte retourne uniquement les enregistrements qui respectent la condition,

    on parle deJointure interne

  • 7/30/2019 coursVB.ppt

    81/117

    3.Jointure des tables: jointures externes

    Question : Liste de tous les pres (nom et prenom)ainsi que le prnom du fils pour ceux qui en ont

    SELECT p.Nom, p.Prenom, f.PrenomAs"Prenom fils"FROM Pere pLeftJoin Fils f

    Onp.numPere = f.numPere

    Nom prenom Prenom fils

    Salmi Mohamed Slimane

    Salmi Mohamed salimaBahi Rida NULL

    Alami Khalil Laila

    Rizki Rachid NULL

    1- La requte retourne tous les enregistrements de la table de gauche ainsi queles enregistrements de la table de droite qui respectent la condition

    2- Lusage des alias (p, f) permet de rduire le code et le rendre plus lisible. Dans lecas o les tables jointes possdent des noms de champs identiques, cetterecommandation devient obligatoire

  • 7/30/2019 coursVB.ppt

    82/117

    3.Jointure des tables: jointures externes

    Remarque : On dispose galement de jointure externes droite: Right Join.Le principe est le mme, il suffit dinverser lordre des tables

    SELECT p.Nom, p.Prenom, f.Prenom

    FROM Fils fRightJoin Pere p

    On p.numPere = f.numPere

    Nom prenom Prenom fils

    Salmi Mohamed Slimane

    Salmi Mohamed salimaBahi Rida NULL

    Alami Khalil Laila

    Rizki Rachid NULL

    Question: Rsultats de la requte suivante ?

    SELECT p.Nom, p.Prenom, f.Prenom

    FROM Fils fLeftJoin Pere p

    On p.numPere = f.numPere

    Nom prenom Prenom fils

    Salmi Mohamed Slimane

    Salmi Mohamed salima

    Alami Khalil Laila

  • 7/30/2019 coursVB.ppt

    83/117

    3.Jointure des tables: jointures externes

    Employe Service

    nume Nom nums

    1 Salmi 20

    2 Bahi 10

    3 Alami 20

    4 Rafik

    nums nomService ville

    10 Rehcerche Rabat

    20 Vente Knitra

    30 Achat Fs

    SELECT e.Nom, s.nomService

    FROM Empoye e LeftJoin Service s

    On e.nums = s.nums

    Question : noms de tous les employs aisni que le nom du service o ils travaillent ?

    Nom nomServiceSalmi Vente

    Bahi Recherche

    Alami Vente

    Rafik

  • 7/30/2019 coursVB.ppt

    84/117

    3.Jointure des tables: jointures externes

    Employe Service

    nume Nom nums

    1 Salmi 20

    2 Bahi 10

    3 Alami 20

    4 Rafik

    nums nomService ville

    10 Rehcerche Rabat

    20 Vente Knitra

    30 Achat Fs

    SELECT s.nomService, COUNT(e.nume) As "nbrEmploye"FROM Service s LeftJoin Empoye e

    On e.nums = s.nums

    GROUP BY s.nomService

    Question : nombre demploys par service ?

    nomService nbrEmployeRecherche 1

    Vente 2

    Achat 0

  • 7/30/2019 coursVB.ppt

    85/117

    4.Ajout de donnes: INSERT [ INTO ]

    INSERT Etudiant (nom, prenom, note)

    VALUES ("Carlos", "Santana", 14)

    INSERT Etudiant

    VALUES( Liste valeurs dans lordre des champs de la table)

    5.Modification de donnes: UPDATE

    UPDATE Etudiant

    SET note = note+2WHERE Classe = 3And Option = "Actuariat"

    Remarque :

    La clause WHEREest utilise de la mme manire quavec la clauseSELECT

  • 7/30/2019 coursVB.ppt

    86/117

    6.Suppression de donnes: DELETE

    Supprimer ltudiant Carlos

    DELETE Etudiant

    WHERE nom = "Carlos"

    Vider la table Etudiant :

    DELETE Etudiant

  • 7/30/2019 coursVB.ppt

    87/117

    Le contrle Data

    Accs aux bases de donnes

  • 7/30/2019 coursVB.ppt

    88/117

    1-Initialiser les principales propritsDatabaseName = C:\magasin.mdb

    RecordSource = Nom Table (ou requte accss)

    2- Lier les diffrentes zones de texte au contrle DataDataSource = nom du contrle Data

    3- Lier la zone de texte un champ de la tableDataField= nom du champ

    Utilisation du contrleData

  • 7/30/2019 coursVB.ppt

    89/117

    Les contrles pouvant tre lis un contrle Data:Label (tiquette)

    TextBox (chamm de saisie)

    CheckBox (case cocher)PictureBox (zone dimage)

    ListBox (liste)

    ComboBox (liste combine)

    Il est galement possible dutiliser dautres contrles :

    DBCombo (liste combine lie)

    DBList (liste lie)

    DBGrid (grille lie)

    Utilisation du contrleData

  • 7/30/2019 coursVB.ppt

    90/117

    Remarque : pour travailler avec les listes, les listes combines et les grilles, il fautles ajouter la bote outils :

    Click bouton droit dans la bote outils , puis Composant

    (ou bien : Menu Projet Composants,

    Ou utiliser directement le raccourcis clavier : Ctrl + t )

    Utilisation du contrleData

  • 7/30/2019 coursVB.ppt

    91/117

    CocherMicrosoft Data Bound Grid et List

    Utilisation du contrleData

  • 7/30/2019 coursVB.ppt

    92/117

    La proprit Recordset : Cre automatiquement Partir de la prorit RecordSource (table ou requte), elle

    donne accs aux enregistrements

    a- Ajout dun nouvel enregistrement:1.Utiliser la mthodeAddNew ( Data1.Recordset.AddNew )

    2.Modifierle contenu des contrles lies3.Appeler la mthode Update pour enregistrer leur contenu

    ( Data1.Recordset.Update )

    Utilisation du contrle Data

  • 7/30/2019 coursVB.ppt

    93/117

    b- Modification de lenregistrement courant :1.Modifierle contenu des contrles lies (enregistrement courant)2.Appeler la mthode Update

    c- Suppression de lenregistrement courant :Appeler la mthode Delete du Recordset :

    Data1.Recordset.Delete

    Data1.Recordset.MoveNextpour se placer sur lenregistrement suivant

    Les proprits BOF et EOF duRecordset peuvent tre utilises pour savoir si laposition courante se trouve au dbut ou la fin du Recordset

    Exemple >>>

    Utilisation du contrle Data

    http://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    94/117

    Les contrles lis Complexes :Affichage du contenu de toute une table (ou requte) avec lecontrleDBGrid :

    Utilisation du contrle Data

  • 7/30/2019 coursVB.ppt

    95/117

    Le contrleDBGrid :

    Pour les diffrentes manipulations denregistrements, il suffit

    de mettre True les proprits correspondantes

    a- Ajout dun nouvel enregistrement :AllowAddNew= True (saisie dans la dernire ligne)

    b- Modification :

    AllowUpdate= True

    c- Suppression : (slection dune ligne puis touche suppr)AllowDelete= True

    Exemple >>>

    Utilisation du contrle Data

    http://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    96/117

    Les contrles lis DBList et DBCombo prsentent desproprits complmentaires permettant un fonctionnement pluscomplexe: ils autorisent la visualisation simultane detoutes les lignes dun champ du Recordset

    Proprits :

    RowSource : nom du contrle Data

    ListField : nom du champ de la table affich dans la listeExemple >>>

    Utilisation du contrleData

    http://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    97/117

    Aide la saisie :

    Utilisation du contrleData

    Saisie trs difficile

  • 7/30/2019 coursVB.ppt

    98/117

    Aide la saisie: Ralisation Exemple >>>

    1- Ajouter un 2eme contrle Dataname = dataSencondaireDatabaseName = Entreprise (la mme base)RecordSource = Service (table lie)

    2- Remplacer le TextBox par un ComboBoxRowSource = dataSecondaire (source de donnes du contrle)ListField = nomService (champ qui contient le nom du service)

    DataSource = Data1 (contrle qui est mis jour (table employ)DataField = numService (champ devant tre mis jour)BoundColumn = numService (lien entre les deux tables)

    Utilisation du contrleData

    http://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ControleData/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    99/117

    Les filtres (listes dpendantes) Exemple >>>

    Le principe est de changer la proprit RecordSourceen cours dexcution,actualiser le contrle Data en appelant la mthode Refresh et actualiser le

    2me

    DBCombo en appelant la mme mthode

    Private Sub DBCombo1_Click(Area As Integer)Construction de la requterequete = "Select * FROM Ville WHERE numPays = ("requete = requete + "SELECT numPays FROM Pays WHERE

    nomPays = '" & DBCombo1.Text & "')"Data2.RecordSource = requeteData2.RefreshDBCombo2.RefreshEndSub

    Utilisation du contrleData

    http://localhost/var/www/apps/ExemplesVb/Filtre/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/Filtre/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    100/117

    Pour pouvoir utiliser ADO dans un projet Visual Basic vous devezrajouter la bibliothque Microsoft AtiveX Data Objects 2.0 Library

    menu Projets Rfrences,puis cocherMicrosoft AtiveX Data Objects 2.0 Library

    ADO propose les objets suivants :

    Recordset : jeu d'enregistrements retourns lors de l'excution d'unSELECT

    Connection : connexion une source de donnes (fichier texte,fichier Excel, ou une base de donnes)Error : ensemble des erreurs retournes par le SGBDCommand : permet d'excuter des requtesParameter : permet de dfinir un paramtre d'une requte

    Accs aux donnes avec ADO

  • 7/30/2019 coursVB.ppt

    101/117

    1- Cration dun DSN (Data Source Name)

    - Dans le panneau de configuration de windows, slectionnez outilsdadministration, puis Sources de donnes (ODBC)

    - Dans ladministrateur de source de donnes ODBC, slectionnezSources de donnes utilisateur(le 1eronglet)

    - Cliquez sur le bouton ajouter, puis slectionnerMicrosoft AccessDriver(*.mdb) et cliquer surterminer

    - La bote de dialogueinstallation ODBC Microsoft Accessest

    affiche. Entrez le nom de la source de donnes : Gestion entreprise- Cliquez sur le bouton slectionneret slectionnez le fichier de votrebase de donnes, le DSN Gestion entreprise est ajout la liste,cliquez ensuite surok (Dmonstration )

    Accs aux donnes avec ADO

  • 7/30/2019 coursVB.ppt

    102/117

    Lobjet RecordsetLa proprit Fields tant la proprit par dfaut, les lignes

    suivantes sont quivalentes:

    rs.Fields(nomService)

    rs.Fields(1) le 1erchamp est dindice 0

    rs (nomService)

    rs.Fields(1)rs![nomService]

    Exemple>>>

    Accs aux donnes avec ADO

    http://localhost/var/www/apps/ExemplesVb/ADO1/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ADO1/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    103/117

    Lobjet RecordsetLexemple prcdent nest pas optimis. En ffet, une

    connexion la base de donnes est tablie chaque fois quunerequte est gnre : lors du remplissage initial de la liste,puis chaque slection dun lment de la liste.

    Problme:temps dtablissement dune connexion peutdevenir long, surtout si la base se trouve sur une autre

    machine

    Solution: Etablir une connexion permanente indpendammentdes requtes en utilisant lobjet Connection

    Accs aux donnes avec ADO

  • 7/30/2019 coursVB.ppt

    104/117

    Lobjet Connection : (dclaration dans le volet gnral !!)

    Private cn As Connection

    Private Sub Form_Load()

    'cration d'une connexionSet cn = New Connection

    'etablessement de la connexioncn.Open "DSN=gestion entreprise"

    'cration du Recordset

    Dim rs As NewRecordset'lien avec la connexion cnSet rs.ActiveConnection= cn ..

    Exemple>>>

    Accs aux donnes avec ADO

    http://localhost/var/www/apps/ExemplesVb/ADO2/Projet1.vbphttp://localhost/var/www/apps/ExemplesVb/ADO2/Projet1.vbp
  • 7/30/2019 coursVB.ppt

    105/117

    Accs aux donnes avec ADO

    A- Ajout dun nouvel enregistrement :

    dim rs As New ADODB.Recordsetrs.Open Select * from Service ,DSN=gestion entreprise,_

    adOpenDynamic, adLockOptimisticrs.AddNewrs![numService] = 50rs![nomService] = Ressources humainers.Update

    Remarque : adOpenDynamiccest pour permettre lcriture surla base (le mode par dfaut tant la lecture seule)

    A d

  • 7/30/2019 coursVB.ppt

    106/117

    Accs aux donnes avec ADO

    B- Modification de tous les enregistrements :

    dim rs As New ADODB.Recordsetrs.Open Select * from Article ,DSN=gestion entreprise,_

    adOpenDynamic, adLockOptimistic

    dim stock as integerDo While Not rs.EOF

    stock = rs![stock]

    rs![stock] = stock 10rs.Updaters.MoveNext

    Loop

    A d

  • 7/30/2019 coursVB.ppt

    107/117

    Accs aux donnes avec ADO

    C- Suppression de tous les enregistrements :

    dim rs As New ADODB.Recordsetrs.Open Select * from Article ,DSN=gestion entreprise,_

    adOpenDynamic, adLockOptimistic

    Do Until rs.EOFrs.Deleters.MoveNext

    Loop

    Remarque : pour supprimer un enregistrement particulier il fautajouter un filtre dans la requte (clause WHERE)

    A d O

  • 7/30/2019 coursVB.ppt

    108/117

    Accs aux donnes avec ADO

    Le contrle ADODC (ADO DataControl) :

    Le contrleADODC est semblable au contrle Data prsent

    prcdemment

    Pour lajouter au projet, il faut ajouter le composant :

    Microsoft ADO Data Control 6.0 (OLEDB)

    A d ADO

  • 7/30/2019 coursVB.ppt

    109/117

    Accs aux donnes avec ADO

    Le contrle ADODC :Initialisation :ADODC1.ConnectionString= DSN=gestion entreprise

    A d ADO

  • 7/30/2019 coursVB.ppt

    110/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    Menu fichier,

    puis nouvellefeuille.

    ChoisissezAssistant Feuille

    de donnes

    Cliquez surOuvrir

    A d ADO

  • 7/30/2019 coursVB.ppt

    111/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    A d ADO

  • 7/30/2019 coursVB.ppt

    112/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    A d ADO

  • 7/30/2019 coursVB.ppt

    113/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    A d ADO

  • 7/30/2019 coursVB.ppt

    114/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    A d ADO

  • 7/30/2019 coursVB.ppt

    115/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    Accs a donnes a ec ADO

  • 7/30/2019 coursVB.ppt

    116/117

    Accs aux donnes avec ADO

    Utilisation de lAssistant Feuille de donnes

    Rsultat :

    Environnement deD l t hi

  • 7/30/2019 coursVB.ppt

    117/117

    FINTlchargement cours + exemples + TP :

    Adresse: http://ekhalid.magix.net/public

    Dveloppement graphique

    (Visual Basic)