• Aucun résultat trouvé

[PDF] Cours d Introduction à la programmation en Visual Basic 6 | Formation informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours d Introduction à la programmation en Visual Basic 6 | Formation informatique"

Copied!
65
0
0

Texte intégral

(1)

Visual

Visual

Basic pour Applications

Basic pour Applications

DAO

DAO

-

-

ADO

ADO

IQ2 – BDD

© Richard CHBEIR

: richard.chbeir@iut-dijon.u-bourgogne.fr

Bibliographie :

• "VBA pour Access 2000", Edition Eyrolles, ISBN : 2-212-09100-1

• "ASP 3.0 Professionnel", Edition Eyrolles, ISBN: 2-212-09151-6

(2)

Plan du chapitre

Plan du chapitre

Introduction

Les composants Access

Les méthodes d'accès aux données

Le modèle DAO

Le modèle ADO

Quelques conseils

(3)

Introduction

(4)

D

D

é

é

finition

finition

VBA est un langage de programmation commun à tous

les produits Microsoft

Moyen rapide de développer

Permet d'interagir avec l'environnement Windows

Programmation événementielle

Souris: Déplacement, clique du bouton droit, glisser, déplacer, etc.

Clavier: saisie, touche relâchée, etc.

Gestion des fenêtres

Exécution des commandes systèmes

(5)

Distinction

Distinction

Ne pourra en aucun cas

s'exécuter de manière

autonome.

Il existe cependant une version "Run time" d'Access,

nommée "Kit Office Développement Environnement

(Kit ODE)", qui permet de distribuer une application

développée sous Access sans avoir à installer Access sur les

postes destinés à faire fonctionner cette application.

Permet de créer des

applications

indépendantes

Complètement lié à un des

produits Microsoft office

VB

VBA

Version 1 et

2 d'Access

Access

Basic

(6)

Syntaxe avec le code en couleur

Explorateur d’objets

Aide contextuelle syntaxique depuis les lignes de

code

Possibilité de définir des segments de code se

compilant conditionnellement

Espions

Points d’arrêt

Caract

(7)

Environnement de

Environnement de

d

d

é

é

veloppement IDE

veloppement IDE

Déclaration

Fonction

Procédure

Exploration

Propriétés

Fenêtre Code

(8)

Comment tester

Comment tester

Fenêtre d

Fenêtre d

ex

ex

é

é

cution

cution

Ex

Ex

é

é

cution d

cution d

une proc

une proc

é

é

dure

dure

(9)

Les composants Access

(10)

Composants majeurs

Composants majeurs

Access comporte deux composants :

Microsoft Jet

Contrôle le stockage des données

Définit les objets de la BD

Le moteur de l’application

Contrôle la programmation

Contrôle l’interface

Comment ça fonctionne ?

Quand vous ouvrez une BD, le moteur de l’application

utilise

Microsoft Jet

pour déterminer les noms des tables, des

requêtes, etc.

(11)

Microsoft Jet 4.0

Microsoft Jet 4.0

C'est le

Gestionnaire de fichiers

Gestionnaire de fichiers

Il possède les caractéristiques suivantes :

Moteur à 32 bits

Support Unicode

Jeux de caractères à deux octets par caractère

Types de données compatibles avec SQL Server

SQL 92

(12)

Structure simplifi

Structure simplifi

é

é

e du

e du

mod

mod

è

è

le Application

le Application

Application

Screen

DoCmd

Reports

Forms

Control

Properties

Debug

(13)

Le langage VBA

(14)

Types de donn

Types de donn

é

é

es

es

Byte

entiers positifs compris entre 0 et 255,

Boolean

True et False,

Integer ou %

entiers entre -32 768 et 32 767,

Currency ou @

valeurs entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807

String ou $

Entre 0 et environ 63 Ko de caractères

Long ou &

(15)

Types de donn

Types de donn

é

é

es

es

Decimal

Single ou !

Double ou #

Date

pour stocker les dates (

1/01/100 – 31/12/9999

) et les heures

Object

Tous types d'objets,

Variant (Par défaut)

Type de données particulier pouvant contenir des données numériques,

des chaînes ou des dates, des types définis par l'utilisateur ainsi que les

valeurs spéciales Empty et Null

(16)

D

D

é

é

clarations

clarations

Des variables (

DIM

)

DIM entier as INTEGER

DIM type as Variant

DIM x(10, 25) as Single

REDIM x(10, 40) as INTEGER

Des constantes (

CONST

)

Const PI As Single = 3.14

Des structures de données définies par l’utilisateur

Type

Adresse

Numero as Integer

NomRue as String * 30

Ville as String * 50

CodePostal as INTEGER

End TYPE

…..

(17)

D

D

é

é

clarations

clarations

Des procédures (

SUB

)

Des fonctions (

function

)

Function

NoteAleatoire() As Single

Dim

ValeurAlea

As Single

ValeurAlea = Rnd() * 20

NoteAleatoire = Format(ValeurAlea, "0.0")

End Function

Sub

Attribution_Note_Aleatoire()

Dim

Notes As

Recordset

. . .

(18)

Port

Port

é

é

e d'une variable

e d'une variable

Private

Permet de définir des variables privées

Une procédure privée englobe des variables privées

Public (ou Global)

Permet de définir des variables publiques

Static

Permet de (re)définir des variables dont le contenu

est non modifiable

(19)

Op

Op

é

é

rateurs

rateurs

Mathématiques

+, -, *, /, ^

De comparaison

<, <, =, <=, >=, <>

Logiques

(20)

Branchement et boucles

Branchement et boucles

Instruction IF

IF

(a=5)

Then

Else

ENDIF

Instruction IIf(condition, truepart, falsepart)

Instruction GOTO

GoTO

Fin

…..

:FIN

Instruction FOR…NEXT

For

i=1

to

10

---Next

i

Instruction While

While

i<=10

---Wend

(21)

Branchement et boucles

Branchement et boucles

Instruction DO..LOOP

Do

[{While | Until} condition]

[statements]

Loop

Vous pouvez également utiliser la syntaxe suivante :

Do

[statements]

Loop

[{While | Until} condition]

Instruction Select Case

Select CASE

valeur

Case0 to2 …. Case3 to5 … Case6 Case ELSE

END SELECT

L’instruction CALL

Transfère le contrôle à une procédure ou à une Fonction (interne ou externe)

(22)

R

R

é

é

f

f

é

é

rencer des objets

rencer des objets

Plusieurs méthodes :

NomCollection

!

[Nom de l’Objet]

Ex: Forms![Clients]

NomCollection

(

"Nom de l’Objet"

)

Ex: Forms("Clients")

NomCollection(Numéro de l’Objet)

Ex: Forms(0) et Forms(Forms.Count-1)

Pour accéder à un sous-object ou à une méthode, on

utilise aussi le

.

(23)

Gestion d

Gestion d

erreurs

erreurs

On error … ⇒ Génération d'une constante Err

Resume NEXT

Le programme continue sans abandonner

ERL

Renvoie le numéro de la ligne où l’erreur s’est produite

Err.Number

Contient le code de l’erreur

Error$(Err) ou Err.Description

Donne les détails de ERR

On Error GoTo

Err_Click

….

(24)

Fonctions int

Fonctions int

é

é

gr

gr

é

é

es

es

Sur les chaînes

Left (chaîne, taille), Right, Replace, etc.

Arithmétiques

ABS, LOG, EXP, etc.

Commandes

CHDIR, CHDRIVE, DIR£, MKDIR, RMDIR, etc.

Heure/date

Date$, Now, etc.

Affichage

(25)

Librairies

Librairies

Les librairies proposées dans très variées

Pour les intégrer dans un module:

Dans l'IDE de Visual Basic

Outils/références

(26)

M

M

é

é

thodes d'acc

thodes d'acc

è

è

s aux

s aux

donn

(27)

M

M

é

é

thodes d'acc

thodes d'acc

è

è

s aux

s aux

donn

donn

é

é

es

es

Plusieurs librairies sont proposées. Mais Principalement

:

DAO (Data Access Objects)

Interface permettant l'accès aux données qui communique avec

Microsoft Jet

et des sources de données compatibles ODBC

pour se connecter à, récupérer, manipuler et mettre à jour des

données et

la structure

de base de données.

ADO (ActiveX Data Objects)

Interface d'accès aux données qui communique avec des

sources de données compatibles

OLE DB

pour la connexion,

la récupération, la manipulation et la mise à jour de données

(28)

Le mod

(29)

Le mod

Le mod

è

è

le DAO

le DAO

Access

VBA

DAO

ODBCDirect

ODBC

ISAM

dbase

ODBC SQL

Server

ODBC

Oracle

*.mdb

*.dbf

SQL Server

Oracle

Microsoft JET

(30)

Caract

Caract

é

é

ristiques de DAO

ristiques de DAO

Adapté à la gestion des BD hétérogènes

Oracle, SQL server, Access, Sybase, Paradox, etc.

Conçu pour des applications client/serveur

Dépend d'un groupe international (et pas de

Microsoft ☺)

(31)

Structure du mod

Structure du mod

è

è

le DAO

le DAO

DBEngine

Workspaces

Errors

Connections

Databases

Groups

Users

QueryDefs

Recordsets

TableDefs

Containers

Relations

Parameters

Fields

Indexes

Documents

(32)

Acc

Acc

è

è

s

s

à

à

une BD

une BD

Ouverture

OpenDataBase(Name, Exclusif, ReadOnly)

Fermeture

Close

Exemple (Déclaration de trois bases)

Sub Accès_femeture_base()

' 1- Déclaration des bases

DIM MaBD1 As DataBase

DIM MaBD2, MaBD3 As DataBase

. . . .

' 2- Affectation des bases

Set MaBD1 = OpenDataBase("c:\temp\fichierDB1.mdb") ' base locale

Set MaBD2 = OpenDataBase("\\serveur_IUT\Partage\fichierDB2.mdb", TRUE) ' base partagée en mode exclusif

Set MaBD3 = OpenDataBase("fichierDB3.mdb", FALSE, TRUE) ' base locale ouverte en lecture seule

. . . .

' 3- Fermer les bases

(33)

Tables

Tables

Création

(d'une table Etudiants avec deux champs Nom et Numéro)

Sub Création_Table()

'1- déclaration de la base

Dim db As database

'1- déclaration d'une variable de type Table

Dim definition_table As TableDef

'1- déclaration d'une variable de type champ

Dim champ_Nom, Champ_Num As Field

. . . .

'2- Affectation

Set db = currentDb()

Set definition_table = db.CreateTableDef("Etudiant")

Set champ_Nom = definition_table.CreateField("Nom", dbText, 50)

Set champ_Num = definition_table.CreateField("Numéro", dbInteger) definition_table.Fields.append champ_Nom

definition_table.Fields.append champ_Num . . . .

(34)

Tables

Tables

Suppression

(de la table Etudiants)

Déclaration

(d'une variable qui représente la table Etudiants)

Sub Suppresion_table() '1- déclaration de la base Dim db As database '2- Affectation Set db = currentDb() ' Suppresion de la table Db.TableDefs.Delete "Etudiants" End Sub Sub Attribution_table() '1- déclaration de la base Dim db As Database

Dim definition_table As Recordset

(35)

Requêtes

Requêtes

Création

(d'une requête des Clients lyonnais)

Suppression

(de la requête Client lyonnais)

Sub création_requete()

'1- déclaration

Dim db As Database

Dim definition_requete As QueryDef

'2- Affectation

Set db = CurrentDb()

Set definition_requete = db.CreateQueryDef("Clients Lyonnais", "Select * from Clients where Ville='Lyon'")

End Sub Sub Suppresion_requête() '1- déclaration de la base Dim db As database '2- Affectation Set db = currentDb() ' Suppresion de la requete

(36)

Requêtes

Requêtes

Déclaration

(de la requête Clients lyonnais)

Sub Attribution_requete()

'1- déclaration de la base

Dim db As Database

Dim requete As Recordset

'2- Affectation

Set db = CurrentDb()

Set requete = db.OpenRecordset("Clients lyonnais", dbOpenDynaset)

End Sub

Sub Attribution_requete_methode2 ()

'1- déclaration de la base

Dim db As Database

Dim requete As Recordset

Dim definition_requete As QueryDef

'2- Affectation

Set db = CurrentDb()

Set definition_requete = db.QueryDefs("Clients lyonnais")

(37)

Acc

Acc

é

é

der aux enregistrement

der aux enregistrement

d'une table

d'une table

Plusieurs moyens, mais principalement :

(38)

RecordSet

RecordSet

Applicable sur les tables et les requêtes

Trois éléments sont essentiels

La base de données concernée

Les enregistrements dans la base

Le type de RecordSet

Déclaration d'une variable

Pour représenter la table "Clients"

'1- déclaration des variables

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

tb_clients

tb_clients

As

As

Recordset

Recordset

'2- Affectation

Set

db

=

CurrentDb

()

dbOpensnapshot)

dbOpensnapshot)

DbOpentable)

DbOpentable)

(39)

RecordSet

RecordSet

Propose plusieurs méthodes :

De positionnement

MoveFirst | MoveNext | MoveLast | MovePrevious | Move n

BOF, EOF

De recherche

FindFirst | FindLast | FindNext | FindPrevious

De manipulation

Delete

Update

Edit

Addnew

Field

Requery (mise-à-jour)

Diverses

Bookmark

RecordCount

(40)

RecordSet

RecordSet

Positionnement sur un enregistrement

Propriété Bookmark

Indique l’enregistrement courant

Cette propriété mise à jour à chaque déplacement dans le recordset

Exemple

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

tb_clients

tb_clients

As

As

Recordset

Recordset

Dim

Dim

enregistrement

enregistrement

As

As

Variant

Variant

'2

'2

-

-

Affectation

Affectation

Set

Set

db

db

=

=

CurrentDb

CurrentDb

()

()

Set

Set

tb_client

tb_client

=

=

db.OpenRecordset

db.OpenRecordset

("Clients",

("Clients",

dbOpenDynaset

dbOpenDynaset

)

)

tb_client.FindFirst

tb_client.FindFirst

"[Code Client] = 'ANTON'"

"[Code Client] = 'ANTON'"

enregistrement =

enregistrement =

tb_client.Bookmark

tb_client.Bookmark

' on se d

(41)

RecordSet

RecordSet

Méthodes

FindFirst | FindLast | FindNext | FindPrevious

Permet de trouver un enregistrement selon un critère donné

utilisation des opérateurs de comparaison, logique, et/ou de

l’opérateur LIKE

Exemple

On veut savoir si on a des clients dont le code commence par A

'1- déclaration des variables

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

tb_clients

tb_clients

As

As

Recordset

Recordset

'2- Affectation

Set

Set

db = CurrentDb()

db = CurrentDb()

Set

Set

tb_client = db.OpenRecordset("Clients", dbOpenDynaset)

tb_client = db.OpenRecordset("Clients", dbOpenDynaset)

'3

'3

-

-

Rerchercher les clients dont le code commence par A

Rerchercher les clients dont le code commence par A

tb_client.FindFirst "[Code Client] LIKE 'A*'"

tb_client.FindFirst "[Code Client] LIKE 'A*'"

'4

'4

-

-

Affichage d'un message quand l'enregistrement est trouv

Affichage d'un message quand l'enregistrement est trouv

é

é

If

(42)

Comment acc

Comment acc

é

é

der

der

à

à

un

un

champ ?

champ ?

• En utilisant

Fields :

stocke les différents champs d ’un enregistrement. Chaque champ est représenté par un objet

instance de la classe Field

Le nombre de Fields est déterminé par la méthode

Count

Remarque : la classe field permet de représenter un champ. On y trouve principalement les

propriétés

name

et

value

qui renvoie respectivement le nom et la valeur du champ.

Exemple

Dim

rs

As

Recordset

rs.Fields("nom_produit")

'valeur du champ nom_produit

rs ("nom_produit")

'valeur du champ nom_produit

rs.[nom_produit]

'valeur du champ nom_produit

rs![nom_produit]

'valeur du champ nom_produit

rs.Fields(1)

'valeur du premier champ

(43)

Question 1

Question 1

Comment afficher la liste des champs de la table

"Etudiants" ainsi que le contenu de chaque

champ ?

Sub

afficher_contenu_table_clients()

Dim

db

As

Database

Dim

tb_clients

As

Recordset

Set

db = CurrentDb()

Set

tb_client = db.OpenRecordset("Clients", dbOpenDynaset)

For

i = 0

To

tb_client.Fields.Count - 1

Debug.Print

tb_client.Fields(i).Name

Next

i

While Not

tb_client.EOF

For

i = 0

To

tb_client.Fields.Count - 1

Debug.Print

tb_client.Fields(i).Value

Next

i

(44)

Ajout d'un enregistrement

Ajout d'un enregistrement

Elle se fait en respectant les étapes suivantes :

1.

Utiliser la méthode AddNew

du Recordset pour créer un

nouvel enregistrement vide et s’y positionner

2.

Donner une valeur aux champs (Fields) du Recordset

On peut également passer ces valeurs comme paramètres de la

méthode AddNew

3.

Utiliser la méthode Update

du Recordset pour enregistrer le

nouvel enregistrement dans la base

(45)

RecordSet

RecordSet

Exemple d'ajout

On veut ajouter le client IQ2 ayant le code 'IUTIQ'

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

tb_clients

tb_clients

As

As

Recordset

Recordset

Set

Set

db = CurrentDb()

db = CurrentDb()

Set

Set

tb_client = db.OpenRecordset("Clients", dbOpenDynaset)

tb_client = db.OpenRecordset("Clients", dbOpenDynaset)

'1

'1

-

-

Demander la cr

Demander la cr

é

é

ation

ation

Tb_client.AddNew

Tb_client.AddNew

'2

'2

-

-

Fournir les valeurs des champs

Fournir les valeurs des champs

Tb_client.[Code Client] = "IUTIQ"

Tb_client.[Code Client] = "IUTIQ"

Tb_client![Nom] = "IQ2"

Tb_client![Nom] = "IQ2"

'3

'3

-

-

Enregistrer les donn

Enregistrer les donn

é

é

es

es

Tb_client.Update

(46)

RecordSet

RecordSet

Modification d ’enregistrements

1. Se positionner sur l ’enregistrement à modifier 2. Utiliser la méthode Edit

3. Modifier la valeur des champs 4. Utiliser la méthode update

Exemple

On veut changer le nom du client dont le code est 'ANTON'

Dim db As Database

Dim tb_clients As Recordset

Set db = CurrentDb()

Set tb_client = db.OpenRecordset("Clients", dbOpenDynaset) tb_client.FindFirst "[Code Client] = 'ANTON'"

' On aurait pu faire directement

'Set tb_client = db.OpenRecordset("Select * from Clients where [Code client] = 'ANTON'")

If Not tb_client.NoMatch Then

'If (tb_client.RecordCount != 0) Then

MsgBox "trouvé" tb_client.Edit

(47)

RecordSet

RecordSet

Suppression d ’enregistrements

1.

Se positionner sur l ’enregistrement à supprimer

2.

Utiliser la méthode delete

Remarque : l ’enregistrement courant n ’est plus valide … pensez

donc à le déplacer (avec MoveNext ou autres)

Exemple

Supprimer le client dont le Code est ANTON

Dim db As Database

Dim tb_clients As Recordset

Set db = CurrentDb()

Set tb_client = db.OpenRecordset("Clients", dbOpenDynaset) tb_client.FindFirst "[Code Client] = 'ANTON'"

' On aurait pu faire directement

'Set tb_client = db.OpenRecordset("Select * from Clients where [Code client] = 'ANTON'")

(48)

RecordSet

RecordSet

Tri de données

1.

Ouvrir la table ou la requête avec RecordSet

2.

Utiliser la méthode Sort

3.

Copier le résultat dans une autre RecordSet

Exemple

Trier les clients par ordre décroissant

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

enregistrement,

enregistrement,

enregistrement_trie

enregistrement_trie

As

As

Recordset

Recordset

Set

Set

db

db

=

=

CurrentDb

CurrentDb

()

()

Set

Set

enregistrement =

enregistrement =

db.OpenRecordset

db.OpenRecordset

("select * FROM Clients")

("select * FROM Clients")

' ou Set enregistrement =

' ou Set enregistrement =

db.OpenRecordset

db.OpenRecordset

("Clients",

("Clients",

dbOpenDynaset

dbOpenDynaset

)

)

' Attention

' Attention

' Set enregistrement =

' Set enregistrement =

db.OpenRecordset

db.OpenRecordset

("Clients")

("Clients")

ne marche pas

ne marche pas

enregistrement.Sort

(49)

Filtre de donn

Filtre de donn

é

é

es

es

Filtre de données

1.

Ouvrir la table ou la requête avec RecordSet

2.

Utiliser la méthode Filtre

3.

Copier le résultat dans une autre RecordSet

Exemple

Trouver les clients dont le nom est IQ2 ou le code postal commence par 21

Dim

Dim

db

db

As

As

Database

Database

Dim

Dim

enregistrement,

enregistrement,

enregistrement_filtre

enregistrement_filtre

As

As

Recordset

Recordset

Set

Set

db

db

=

=

CurrentDb

CurrentDb

()

()

Set

Set

enregistrement =

enregistrement =

db.OpenRecordset

db.OpenRecordset

("Clients")

("Clients")

enregistrement.Filter

enregistrement.Filter

= "[Nom] = 'IQ2'

= "[Nom] = 'IQ2'

Or

Or

[Code Postal]

[Code Postal]

like

like

'21*'"

'21*'"

Set

Set

enregistrement_filtre

enregistrement_filtre

=

=

enregistrement.OpenRecordset

enregistrement.OpenRecordset

(

(

dbOpenDynaset

dbOpenDynaset

)

)

,

(50)

Le mod

(51)

Le mod

Le mod

è

è

le ADO

le ADO

VC++

VBA/VB

ADO

Pilote ODBC

SQL Server

ODBC

*.mdb

Index

SQL Server

Access

ASP

Java

C

on

co

m

m

ate

ur

s

O

LE

D

B

Jet OLE

Object

ADSDSO

MSIDXS

SQLOLEDB

MSDASQL

F

ou

rn

is

se

ur

s

O

LE

D

B

Annuaire

(52)

Fournisseurs OLE DB

Fournisseurs OLE DB

Jet OLE DB 4.0

Pour les BD Access

SQL Server

Oracle

ODBC Drivers

Pour les sources de données ODBC

OLAP Services

Pour le serveur OLAP Microsoft (Exchange Server)

Simple Provider

Pour les fichiers de texte simples

Microsoft Directory Services

Pour Active Directory sous Windows 2000

Internet Publishing

Pour l'accès aux serveurs Web

DTS packages

(53)

Caract

Caract

é

é

ristiques de OLE DB

ristiques de OLE DB

et ADO

et ADO

Adaptés à la gestion de toute source de données

BD, systèmes de messagerie, service d'annuaires,

serveurs Web, etc.

Conçus pour des applications orientées Internet

Jeux d'enregistrements déconnectés, meilleure

gestion des utilisateurs, etc.

(54)

Structure simplifi

Structure simplifi

é

é

e

e

Connection

Error

RecordSet

Command

Parameter

Field

Ex

Ex

é

é

cuter

cuter

Connexion

Connexion

Active

Active

Source

Source

Ex

Ex

é

é

cuter

cuter

(55)

Instanciation des classes

Instanciation des classes

Syntaxe

Exemple

Dim

nom_variable

As

[

New]

ADODB.nom_classe

Dim

cn

As New

ADODB.Connection

Dim

cmd

As New

ADODB.Command

(56)

La classe

La classe

Connection

Connection

Permet la connexion à une source de données.

Un objet de cette classe identifie une et une

seule connexion à une source de données

Permet l'exécution de commandes

Requête de mise à jour, d'insertion, de suppression,

etc.

(57)

Les m

Les m

é

é

thodes

thodes

Connection

Connection

Open

Ouvre une connexion à une source de données

Execute

Exécute une requête et récupère le résultat dans un RecordSet

Close

Ferme une connexion

Dim

Dim

rs1, rs2

rs1, rs2

As

As

New

New

ADODB.Recordset

ADODB.Recordset

Set

Set

rs1 =

rs1 =

cn.execute

cn.execute

("select [nom Client]

("select [nom Client]

from

from

Clients")

Clients")

cn.Execute

cn.Execute

("insert

("insert

into

into

ma_table

ma_table

values (5,

values (5,

abc

abc

,

,

)")

)")

cn.close

cn.close

Dim

Dim

cn

cn

As

As

New

New

ADODB.Connection

ADODB.Connection

cn.open

(58)

La classe

La classe

Command

Command

Permet d'exécuter des commandes sur une

source de données (des instructions SQL)

(59)

La classe

La classe

Command

Command

Propriétés

.CommandText : stocke le texte de la commande

Ex :

objet_cmd.CommandText = "select * from Clients"

.ActiveConnection : permet de choisir la

connexion (donc la base) sur laquelle s’exécutera la

commande

(60)

La classe

La classe

Command

Command

Méthode

Execute : permet d ’exécuter la commande

Sans paramètre (stockée dans la propriété

CommandText)

– Ex : objet_command.Execute

Avec paramètre

– Ex :

objet_command.Execute("select * from

produits")

(61)

La classe

La classe

Command

Command

Exemple

Dim

Dim

cn

cn

As

As

New

New

ADODB.Connection

ADODB.Connection

cn.open

cn.open

"DSN=

"DSN=

Base_Clients

Base_Clients

"

"

' Cela signifie qu'une source de donn

' Cela signifie qu'une source de donn

é

é

es nomm

es nomm

é

é

e

e

Base_Client

Base_Client

existe d

existe d

é

é

j

j

à

à

dans ODBC

dans ODBC

Dim

Dim

cmd

cmd

As

As

New

New

ADODB.Command

ADODB.Command

cmd.CommandText

cmd.CommandText

= "select *

= "select *

from

from

Clients"

Clients"

Set

Set

cmd.ActiveConnection

cmd.ActiveConnection

=

=

cn

cn

Dim

Dim

rs

rs

As

As

New

New

ADODB.recordset

ADODB.recordset

Set

(62)

La classe

La classe

Recordset

Recordset

Permet de contenir l'ensemble des données

extraites des sources

Stocke le résultat de l’exécution d’une commande

sous forme d’un ensemble de lignes

(63)

La classe

La classe

Recordset

Recordset

Trois possibilités d'instanciation via la méthode

Execute de Connection

Execute de

Command

Open de

Recordset

Dim

Dim

cmd

cmd

As

As

New

New

ADODB.Command

ADODB.Command

cmd.CommandText

cmd.CommandText

= "select *

= "select *

from

from

Produits"

Produits"

set

set

cmd.ActiveConnection

cmd.ActiveConnection

=

=

cn

cn

Dim

Dim

rs

rs

As

As

New

New

ADODB.recordset

ADODB.recordset

set

set

rs

rs

=

=

cmd.Execute

cmd.Execute

Dim

Dim

rs

rs

As

As

New

New

ADODB.recordset

ADODB.recordset

set

set

rs

rs

=

=

cn.execute

cn.execute

("select [nom Client]

("select [nom Client]

from

from

Clients")

Clients")

Dim

Dim

rs

rs

As

As

New

New

ADODB.recordset

ADODB.recordset

rs.open

(64)

Cr

Cr

é

é

ation d

ation d

un

un

Recordset

Recordset

Syntaxe générale de la méthode open

objet_recordset.open

une_instruction

connection_active

lock_type

requête

requête

sql

sql

, nom d

, nom d

une table,

une table,

une cha

une chaî

îne contenant le DSN

ne contenant le DSN

ou une r

ou une r

éf

é

érence

rence à

à

un objet

un objet

de la classe

de la classe

connection

connection

Une constante qui prend une des valeurs suivantes :

Une constante qui prend une des valeurs suivantes :

adLockReadOnly

adLockReadOnly

les donn

les donn

é

é

es ne peuvent pas être modifi

es ne peuvent pas être modifi

é

é

es

es

adLockPessimistic

adLockPessimistic

les enregistrements sont verrouill

les enregistrements sont verrouill

é

é

s d

s d

è

è

s le d

s le d

é

é

but

but

(65)

Conseils

Conseils

Optimiser votre application

Réduire la consommation de mémoire

Utilisez le bon type de données

Regroupez les procédures dans les modules

Ne chargez pas les bibliothèques inutiles

Augmenter la vitesse d'exécution

Réduire les portions code

Utilisez les constantes

Accroître la vitesse perçue

Pré-charger et masquer des formulaires

Stocker localement les données dans un cache

Compacter la base

Références

Documents relatifs

Three objectives were de- fined: (i) to clearly identify roughness parameters that allow raised grain to be objectively characterised on beech and oak wood surfaces finished with

Je profite de la publication de l’alphabet dual de cette même roche pour publier également l’avancement de cet alphabet non dual, bien que l’on ne puisse donner

less accurate, especially for small scales. These experiments validate the scheme proposed in Section IV-B and suggests that it is necessary to take into account the convolution step

The paper extends the results presented in (Ludinard et al., 2012) by providing more details about the implementation of the approach and the generation of the invariants.

CN: Comfort Noise; LQ: Listening Quality; MBLS: Mean Burst Loss Size; PESQ: Perceived Evaluation of Speech Quality; PLR: Packet Loss Ratio; RMSE: root mean squared error; SID:

The use of normalized sizing coefficients (around 1 or one bound equal to 1) as optimization variables enables to have a generic sizing code since the optimization limits do not

D Tableau 1: Classification des différentes émotions positives 13 AVOIR AVOIR FAIT FAIRE ÊTRE ÊTRE AVEC Plaisir Satisfaction Enjoyment Joie Fun (Csilcszentmihalyi, 1990; (Podilchak,

Besides, PLRH is scalable (balances the computations fairly on the network nodes), shares effectively bandwidth between the backup LSPs and is capable to compute backup LSPs