La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modification dynamique

Présentations similaires


Présentation au sujet: "Modification dynamique"— Transcription de la présentation:

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


Télécharger ppt "Modification dynamique"

Présentations similaires


Annonces Google