VBA et les actions sur les tables - PowerPoint PPT Presentation

Loading...

PPT – VBA et les actions sur les tables PowerPoint presentation | free to download - id: 41f5c4-ODNlM



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

VBA et les actions sur les tables

Description:

VBA et les actions sur les tables Cours de Bernard COFFIN ... Ouvrir les biblioth ques ADODB De nombreux environnements sont possibles sous ACCESS. Pour chacun, ... – PowerPoint PPT presentation

Number of Views:100
Avg rating:3.0/5.0
Slides: 26
Provided by: Bern278
Category:
Tags: vba | access | actions | les | pour | sur | tables

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: VBA et les actions sur les tables


1
VBA et les actions sur les tables
  • Cours de Bernard COFFIN
  • Université Paris 10 Nanterre / IUP MIAGE 1ère
    année
  • Reproduction interdite sans laccord de lauteur

2
Recordset
  • Cest un type de variable qui permet de
    mémoriser des informations complexes composées de
  • Plusieurs enregistrements
  • Qui contiennent chacun plusieurs champs.

3
Ça ressemble
  • à un fichier
  • Mais ça nen est pas un, car tout se passe en
    mémoire centrale.
  • Les modifications sur les tables via un
  • recordset nécessitent donc un ordre ad hoc.

4
Plusieurs technologies
  • Pour utiliser une base de données
    relationnelles, il faut un moteur de recherche
    .
  • SQL est un langage commun aux moteurs
  • Mais, en dehors de la requête, les spécificités
    du domaine réapparaissent.

5
ADO
  • Nous utiliserons seulement le moteur le plus
    récent ADO
  • Abréviation de activeX Data Objects
  • Descendant de la technologie précédente DAO.
  • Nombreuses similitudes. Se référer à Internet
    pour les différences.

6
Ouvrir les bibliothèques ADODB
  • De nombreux environnements sont possibles sous
    ACCESS. Pour chacun, il faut des bibliothèques
    spécialisées.
  • Elles ne sont pas toutes ouvertes simultanément.
  • Il FAUT aller dans la commande Outils, puis
    Références, et là cocher loption
  • Microsoft ADO Ext 2. etc.
  • Sinon, la compilation nest pas possible.

7
Déclaration dun recordset
  • Syntaxe
  • Dim Vue as New ADODB. Recordset
  • On voit que cest en fait un pointeur.

8
Connexion avec la base
  • Le type de la variable, son utilisation dans un
    projet lié à une BD ACCESS, ne suffisent pas à
    établir un lien entre la variable et les données
    quelle doit recueillir.

9
Une connexion en deux temps
  • Il faut dabord établir le lien avec la base de
    données globale. Le plus souvent cest celle qui
    contient le projet quon est entrain de décrire,
    mais ce nest pas obligatoire.
  • Ensuite, il faut établir un lien avec un
    sous-ensemble des données de la base,
    cest-à-dire avec une vue.

10
Connexion avec la base de données
  • Il est possible dutiliser des options par
    défaut mais ce nest pas comme ça quon apprend.
  • Déclarer une variable de type connexion. Cest
    un pointeur. Donc
  • Dim Ma_base as New ADODB.connection
  • Set Ma_base CurrentProject.connection

11
Réalisation de la vue
  • On exécute la méthode open de lobjet
    Recordset, en indiquant un certain nombre
    darguments.
  • Lassistant propose la liste des arguments au
    fur et à mesure de la frappe de linstruction.

12
1er argument la requête
  • Vue.Open "Select table étudiants.Nom
    étudiant," _
  • "table étudiants.Prénom étudiant" _
  • "From table étudiants",
  • Attention à la syntaxe l'instruction SQL est
    une constante de chaîne de caractères de VBA
    (encadrée par des guillemets. Si elle ne tient
    pas sur une ligne, il faut la décomposer en sous
    chaînes concaténées.
  • Possibilité aussi d'affecter la constante à une
    variable, et d'utiliser l'identificateur de
    ladite variable.

13
2eme argument la connexion
  • Vue.Open "Select table étudiants.Nom
    étudiant," _
  • "table étudiants.Prénom étudiant" _
  • "From table étudiants", Ma_base, _

14
3eme argument curseur
  • Le type du curseur, c'est-à-dire le mode
    d'ouverture de la vue.
  • Utilisez des constantes
  • adOpenForwardOnly (lecture séquentielle et on ne
    peut revenir en arrière lecture du début à la
    fin)
  • adOpenKeyset (simulation dun fichier à
    organisation aléatoire permet dêtre tenu au
    courant des modifications apportées par dautres
    utilisateurs. Si rajout dun enregistrement ce
    nest pas accessible)
  • adOpenDynamic (si un autre utilisateur ou une
    autre procédure du même projet ajoute une donnée,
    il permet de consulter ces nouveaux ajouts qui
    ont été faits depuis rafraîchissement permanent
    de la vue)
  • adOpenStatic (on a une vue qui est statique on
    recopie complètement la base de donnée, on
    continue à travailler sur les valeurs initiales,
    on est pas au courant de modifications
    effectuées).

15
  • Vue.Open "Select table étudiants!Nom
    étudiant," _
  • "table étudiants!Prénom étudiant" _
  • "From table étudiants", Ma_base, _
  • adOpenKeyset,

16
4eme argument verrou
  • Le verrouillage des enregistrements assure leur
    protection (impossible de modifier dans certains
    cas).
  • Défini par des constantes.
  • AdLockOPtimistic (pas en réseau, un seul
    utilisateur)
  • AdLockPessimistic (dans le cas de plusieurs
    utilisations simultanés d'une donnée)
  • AdLockReadOnly (on peut lire seulement)
  • AdLockBatchOptmistic (mise a jour par lot
    enregistré a la fin avec les autres registres)

17
  • Vue.Open "Select table étudiants.Nom
    étudiant," _
  • "table étudiants.Prénom étudiant" _
  • "From table étudiants", Ma_base, _
  • adOpenKeyset, adLockOPtimistic

18
La méthode open constitue la vue
  • Après son exécution, l'ensemble des données
    décrit par la requête SQL est disponible.
  • Reste à l'exploiter.

19
Méthodes de changements d'enregistrement
  • Il y en a toute une famille.
  • Leur point commun Move
  • Nous utiliserons
  • .MoveFirst (ouvre et déjà qchose dans tes cases)
  • .MoveLast(positionne sur le dernier)
  • .MoveNext
  • .MovePrevious
  • Ex. Vue.MoveFirst Bien noter la syntaxe.

20
2 propriétés bien utiles
  • .EOF et .BOF
  • Leur type booléen.
  • Attention prennent la valeur Vrai si le pointeur
    denregistrement est positionné après le dernier
    enregistrement, ou avant le premier
    enregistrement, et non pas sur le premier ou le
    dernier.

21
Accès aux champs
  • Deux syntaxes possibles
  • Mettre le nom du champ entre parenthèses
  • Vue (Nom étudiant)
  • Faire précéder le nom du champ d'un point
    d'exclamation Vue!Nom étudiant

22
Mise à jour de la base
  • On utilise la méthode .Update
  • Ce n'est qu'après son exécution que la mise à
    jour est reportée (qu'il s'agisse d'une
    modification de valeurs de champs, d'ajout ou de
    suppression d'enregistrements)
  • Pour ces deux derniers cas, utiliser (avant)
    les méthodes .AddNew et .Delete

23
  • Remarque
  • AddNew crée un nouvel enregistrement qui devient
    l'enregistrement courant. Si on avait commencé
    une modification, ADO lance Update avant l'ajout.
  • Delete et Update ne modifient pas
    l'enregistrement en cours.

24
Déconnexion
  • On utilise la méthode .Close
  • Après le contenu du Recordset n'est plus
    disponible.
  • Attention on ne peut pas rouvrir la requête
    avant de l'avoir fermée.
  • Pour savoir si le Recordset est ouvert, utiliser
    la propriété .State, et la comparer à l'une des
    deux constantes adStateOpen ou adStateClose.

25
  • Et maintenant
  • à vous de jouer !
About PowerShow.com