Vous êtes sur la page 1sur 3

Dpartement Informatique de lInstitut Universitaire de Technologie de lUniversit Bordeaux 1

Olivier Guibert
mise jour 10-03-2010 Benot Recur

Bases de Donnes Access : transactions de la base Access transactions

En cas de problme sur la dclaration dun objet Database (ou encore RecordSet et Workspace) lors de lexcution, vrifiez dans les rfrences de Microsoft Visual Basic que Microsoft ActiveX Data Objects 2.7 Library (qui doit remplacer la version 2.1) prcde Microsoft DAO 3.6 Object Library ; ensuite, prfixez la dclaration de lobjet par DAO. i.e. DAO.Database (respectivement DAO.RecordSet et DAO.Workspace). 1. Copiez la base Access http://deptinfo.labri.fr/~brecur/Teaching/BDS2PUF/TD18/transactions.mdb sous le rpertoire temporaire de votre machine (probablement c:\\temp). Crez une nouvelle base Access dnomme transactions table lie.mdb. Liez dans la nouvelle base Access transactions table lie.mdb la table Table Numros Libells ( Numro , Libell ) de cl Numro de la base Access transactions.mdb.

2. 3.

Rpercussion des oprations de mise jour (insertion, suppression, modification) dune table lie sur la table correspondante. 4. Ouvrez la table Table Numros Libells dans les deux bases de donnes transactions.mdb et transactions table lie.mdb. 5. Effectuez successivement les oprations suivantes dans la table Table Numros Libells de la base Access transactions table lie.mdb. a. Insrez un nouvel lment. b. Regardez si ce nouvel lment est insr dans la table Table Numros Libells de la base Access transactions.mdb. Affichez tous les enregistrements dans cette base. c. Supprimez lun des lments. d. Regardez, juste en plaant la souris dans la fentre correspondante, si cet lment est supprim dans la table Table Numros Libells de la base Access transactions.mdb. Affichez tous les enregistrements dans cette base. e. Modifiez lun des lments. f. Regardez, juste en plaant la souris dans la fentre correspondante, si cet lment est modifi dans la table Table Numros Libells de la base Access transactions.mdb. Rpercussion des oprations de mise jour (insertion, suppression, modification) dun formulaire sur la table sur laquelle il est bas et sur la table lie correspondante. 6. Modifiez (dans la base Access transactions.mdb) le formulaire essais transactions de sorte en consulter le code Visual Basic. Vrifiez dans les rfrences de Microsoft Visual Basic que Microsoft ActiveX Data Objects 2.7 Library (qui doit remplacer la version 2.1) prcde Microsoft DAO 3.6 Object Library. 7. Donnez la signification de chacune des instructions suivantes : MsgBox " message " & LTrim( chane de caractres ) Str( entier ) Me.Refresh Set wrk = DBEngine.Workspaces(0) Set rst = CurrentDb.OpenRecordset(" table ") rst.EOF rst.RecordCount rst.MoveFirst rst.MoveNext rst.MoveLast rst.Delete rst.AddNew rst.Edit rst![ champ ] rst.Update rst.Close wrk.BeginTrans wrk.CommitTrans wrk.Rollback 8. Ouvrez (dans la base Access transactions.mdb) le formulaire essais transactions, de sorte avoir les deux tables et le formulaire ouverts.

Modifi le 7/10/09 10:10 - dit le 10/3/10 18:03 - Imprim le 10/3/10 18:03

Page 1 sur 3

9.

Effectuez successivement les oprations suivantes dans le formulaire essais transactions (de la base Access transactions.mdb). a. Cliquez sur le bouton insert pour insrer un nouvel lment (sans transaction). b. Regardez si ce nouvel lment est insr dans la table Table Numros Libells des deux bases de donnes transactions.mdb et transactions table lie.mdb. Affichez tous les enregistrements dans ces deux bases de donnes. c. Cliquez sur le bouton delete [premier] pour supprimer le premier lment (sans transaction). d. Regardez, juste en plaant la souris dans la fentre correspondante, si cet lment est supprim dans la table Table Numros Libells des deux bases de donnes transactions.mdb et transactions table lie.mdb. Affichez tous les enregistrements dans ces deux bases de donnes. e. Cliquez sur le bouton update [premier] pour modifier le premier lment (sans transaction). f. Regardez, juste en plaant la souris dans la fentre correspondante, si cet lment est modifi dans la table Table Numros Libells des deux bases de donnes transactions.mdb et transactions table lie.mdb.

Non gestion de la proprit disolation des transactions. 10. Effectuez successivement les oprations suivantes dans le formulaire essais transactions (de la base Access transactions.mdb). a. Cliquez sur le bouton insert commit pour insrer un nouvel lment (avec transaction valide). Linstruction qui prcde laffichage de la premire bote de dialogue aprs INSERT, avant COMMIT actualise le formulaire et le nouvel lment devrait safficher (comme tout SGBDR qui implmente correctement la proprit disolation dune transaction) ; est-ce exact ? Aprs avoir valid la seconde bote de dialogue aprs COMMIT , affichez tous les enregistrements dans la table Table Numros Libells des deux bases de donnes transactions.mdb et transactions table lie.mdb. b. Cliquez sur le bouton insert rollback pour insrer un nouvel lment (avec transaction invalide). Commentez ! Verrouillage denregistrements. 11. Importez dans la base Access transactions table lie.mdb le formulaire essais transactions de la base Access transactions.mdb. Vrifiez dans les rfrences de Microsoft Visual Basic que Microsoft ActiveX Data Objects 2.7 Library (qui doit remplacer la version 2.1) prcde Microsoft DAO 3.6 Object Library. 12. Ouvrez dans la base Access transactions table lie.mdb le formulaire essais transactions, de sorte avoir les deux formulaires ouverts. Fermez les deux tables. 13. Effectuez successivement les oprations suivantes dans lun des deux formulaires essais transactions ouverts. Access ne gre pas correctement ses propres options de verrouillage. a. Dans la base Access transactions.mdb, cliquez sur le bouton insert commit pour insrer un nouvel lment (avec transaction valide) sans cliquer dans la premire bote de dialogue aprs INSERT, avant COMMIT . b. Dans la base Access transactions table lie.mdb, cliquez sur le bouton insert commit pour insrer un nouvel lment (avec transaction valide). Que se passe-t-il ? Cliquez sur le bouton Fin de la fentre derreur dexcution. Consultez les options avances et notez le verrouillage par dfaut. Consultez laide sur le verrouillage par dfaut. Les options avances et laide sont-ils cohrents ? Accs concurrents possibles dans le cas des insertions (deux insertions indpendantes dans deux formulaires de deux bases de donnes Access travaillant sur la mme table). c. Dans la base Access transactions.mdb, cliquez dans la premire bote de dialogue aprs INSERT, avant COMMIT sans cliquer dans la seconde bote de dialogue aprs COMMIT . d. Dans la base Access transactions table lie.mdb, cliquez successivement sur le bouton insert commit pour insrer un nouvel lment (avec transaction valide), dans la premire bote de dialogue aprs INSERT, avant COMMIT et dans la seconde bote de dialogue aprs COMMIT . e. Dans la base Access transactions.mdb, cliquez dans la seconde bote de dialogue aprs COMMIT et sur le bouton (actualisation) . f. Commentez. Verrouillage denregistrements dans le cas des modifications. 14. Choisissez loption Enregistrement modifi du groupe doptions Verrouillage par dfaut dans les deux bases de donnes transactions.mdb et transactions table lie.mdb. 15. Effectuez successivement les oprations suivantes dans lun des deux formulaires essais transactions ouverts. a. Dans la base Access transactions.mdb, cliquez sur le bouton update rollback [premier] pour modifier le premier des lments (avec transaction invalide) sans cliquer dans la premire bote de dialogue aprs UPDATE, avant ROLLBACK . b. Dans la base Access transactions table lie.mdb, cliquez sur le bouton update rollback [premier] pour essayer de modifier le premier des lments (avec transaction invalide) sans cliquer dans la premire bote de dialogue aprs UPDATE, avant ROLLBACK . Que se passe-t-il ? Cliquez sur le bouton Fin de la fentre derreur dexcution. c. Dans la base Access transactions table lie.mdb, cliquez sur le bouton update rollback [dernier] pour essayer de modifier le dernier des lments (avec transaction invalide) sans cliquer dans la premire bote de dialogue aprs UPDATE, avant ROLLBACK . Que se passe-t-il ? Cliquez sur le bouton Fin de la fentre derreur dexcution. d. Commentez.

Modifi le 7/10/09 10:10 - dit le 10/3/10 18:03 - Imprim le 10/3/10 18:03

Page 2 sur 3

Fichiers .ldb. 16. Cherchez sur le site de Microsoft1 la signification de lextension .ldb. quoi sert ce fichier ? 17. Fermez la base Access transactions.mdb (laissez transactions table lie.mdb ouverte). Notez le(s) fichier(s) dextension .ldb qui apparaissent dans votre rpertoire de travail. 18. Ouvrez la table Table Numros Libells dans la base Access transactions table lie.mdb. Notez le(s) fichier(s) dextension .ldb qui apparaissent dans votre rpertoire de travail. 19. Lancez Access et essayez douvrir la base Access transactions.mdb en mode exclusif. Commentez. 20. Fermez la base Access transactions.mdb. 21. Fermez la table Table Numros Libells dans la base Access transactions table lie.mdb. Notez le(s) fichier(s) dextension .ldb qui apparaissent dans votre rpertoire de travail. 22. Lancez Access et ouvrez la base Access transactions.mdb en mode exclusif. 23. Essayez douvrir la table Table Numros Libells dans la base Access transactions table lie.mdb. Commentez.

Les informations disponibles sur le Web ntant pas toujours fiables (dans ce cas prcis, certains parlent tord de log database), il convient daller chercher ses renseignements la source. Page 3 sur 3

Modifi le 7/10/09 10:10 - dit le 10/3/10 18:03 - Imprim le 10/3/10 18:03