Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Modification dynamique
On peut modifier dynamiquement l'apparence d'un formulaire: avec les propriétés Visible ou Enabled propriété SourceObject d'un sous-formulaire utilisation de boutons "bascules" … Objets DAO
2
Des Objets pour manipuler la base de données Access
Objets DAO
3
Introduction Access vu du côté "utilisateur" et "concepteur"
Visual Basic vu comme un langage de programmation de l'interface graphique Interaction directe avec la base de données Objets DAO
4
Une approche modulaire
Interface utilisateur Access Visual Basic Data Access Objects Interface objet (DAO) JET Engine Moteur de la base de données Système & Réseau Système de fichiers Objets DAO
5
Objectifs Présentation de la hiérarchie DAO
Minimum vital pour développer Centrer sur la mise à jour des tables Illustration par quelques exemples utilité de l'accès "programmé" à la BD Objets DAO
6
Un aperçu de la hiérarchie DAO
DBEngine Workspaces Databases Autres classes TableDefs QueryDefs Recordsets Autres classes Film Autres Retard Autres Fields Fields NumFilm NumK7 Objets DAO
7
Quelques commentaires
DBEngine : c'est le moteur de la base de données (Jet Engine) Workspaces : collection "sessions base de données". On utilisera uniquement la session courante Databases : collection permettant de manipuler une base de données Base courante (càd actuellement ouverte) CurrentDB Objets DAO
8
Liste des collections Il y a 15 objets ou classes d'objets de manipulation de la base de données + 7 autres spécifiques à la manipulation d'Access. Pour les détails consulter l'aide d'Access (rubrique Objets et Collections de la référence du langage. Nous allons étudier quelques exemples Objets DAO
9
Exemple 1: nom des tables
Sub AfficheNomTable () Dim maBd As Database, I As Integer Dim S As String S = "" Set maBd = CurrentDB For I = 0 To maBd.TableDefs.Count - 1 S = S & maBd.TableDefs(I).name & _ Chr$(13) Next MsgBox S End Sub Objets DAO
10
Exemple 1 Résultat tables utilisateurs tables systèmes Objets DAO
11
Exemple 2: Colonnes d'une table
Sub AfficheColonne (NomTable As String) Dim maBd As Database Dim maTable As TableDef, i As Integer,_ S As String Set maBd = CurrentDB Set maTable = maBd.TableDefs(NomTable) For i = 0 To maTable.Fields.Count - 1 S = S & maTable.Fields(i).name & _ maTable.Fields(i).Type & Chr$(13) Next MsgBox S End Sub Objets DAO
12
Exemple 2: Résultat type 10 => String type 8 => Date Objets DAO
13
Données d'une table Objet : RecordSet recupère les données d'une table ou d'une requête. Il existe trois sortes de RecordSets Dynaset (feuille dynamique) le plus sophistiqué lecture, écriture, mise à jour Snapshot (instantané) Lecture seule : pas de mise à jour dynamique Table correspond exactement à une table (pas de possibilité de requêtes, pas de filtrage). Objets DAO
14
RecordSet: Méthodes Ouverture: Méthode OpenRecordSet de l'objet DataBase ou QueryDef Set R=Bd.OpenRecordSet(<nom>,<type>) <nom> est le nom de la table ou de la requête qui contient les données <type> vaut DB_OPEN_DYNASET, DB_OPEN_SNAPSHOT ou DB_OPEN_TABLE Objets DAO
15
RecordSet (suite) Méthodes
Fermeture: Close Première ligne de données MoveFirst Prochaine ligne de données MoveNext Dernière ligne de données MoveLast Ligne de données précédente MovePrevious Modification d'une ligne de données Edit Ajout d'une ligne de données AddNew Mise à jour des données Update Objets DAO
16
RecordSet (suite) Propriétés
Test dernière ligne : EOF Test première ligne : BOF Nombre de lignes : RecordCount Objets DAO
17
Exemple 3 Données d'une table
Sub LesFilms() Dim maBD As Database Dim D As Recordset, s As String Set maBD = CurrentDb Set D = maBD.OpenRecordset("Film") s = "" D.MoveFirst Do Until D.EOF s = s & D!NUM_FILM & " " & D!TITRE & Chr$(13) D.MoveNext Loop D.Close MsgBox (s) End Sub Objets DAO
18
Exemple 3 Résultat Objets DAO
19
Exemple 4 Mise en majuscule du titre
Sub TitreMaj () Dim maBD As Database Dim D As Recordset Set maBD = CurrentDB Set D = maBD.OpenRecordset("Film") D.MoveFirst Do Until D.EOF D.Edit D!Titre = UCase(D!Titre) D.Update D.MoveNext Loop D.Close End Sub Objets DAO
20
Exemple 4 (Résultat) Objets DAO
21
Exemple 5 ajout d'une ligne
Sub AjouterFilm(T As String) Dim maBD As Database Dim D As Recordset Set maBD = CurrentDb Set D = maBD.OpenRecordset("Film") D.AddNew D!NUM_FILM = NouvNumFilm() D!TITRE = T D.Update D.Close End Sub Objets DAO
22
Recordset (Dynaset) Autres méthodes
Sélection d'information Première ligne de données FindFirst Prochaine ligne de données FindNext Dernière ligne de données FindLast Ligne de données précédante FindPrevious Plus d'enregistrements NoMatch Toutes ces méthodes prennent en argument une condition Objets DAO
23
Exemple 6: Selection Sub FilmsParDeb (T As String)
Dim Bd As Database, S As String, D As Recordset Set Bd = CurrentDB Set D =Bd.OpenRecordset("Film",DB_OPEN_DYNASET) D.FindFirst "Titre like '" & T & "*'" S = "" Do Until D.NoMatch S = S & D!Titre & Chr$(13) D.FindNext "Titre like '" & T & "*'" Loop D.Close MsgBox S End Sub Objets DAO
24
Exemple 6 Résultat Appel : FilmParDeb "Au"
équivalent à mettre Titre like 'Au*' dans la condition d'une requête Objets DAO
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.