Leçon 3 |
|||
Principes d'enregistrements, duplications et suppressions
|
Dans cette leçon, nous allons voir en détail comment Access enregistre la structure des tables, mais aussi les données. Nous verrons comment annuler d'éventuelles bêtises que nous faisons. Nous verrons comment effacer et dupliquer un enregistrement, mais aussi comment dupliquer une table et même toute la base de données (principalement pour des raisons de sécurité) |
Sommaire
|
Pour suivre cette leçon, vous allez ouvrir votre base de données Formagiciel.accdb, ou, vous allez la télécharger à l'aide du bouton ci-dessus.
A partir de maintenant, je pars du principe que vous savez ou vous en êtes avec cette base de données.
Vous êtes donc dans Formagiciel, telle qu'elle était à la fin de la leçon précédente (C'est à dire qu'il y a une table T_Client, pourvue des champs NomClient et Prenom, et 3 enregistrements (Edith Piaf, Elvis Presley et Steven Spielberg).
Allez dans la table T_Client en mode création.
Ajoutez le champ VilleHabitation :
Basculez en mode Saisie de données :
Access vous demande d'enregistrer la table. Dites Oui.
Vous êtes maintenant en mode Saisie de données. Ajoutez Michael Jackson. Oui, je sais, il nous a malheureusement quitté, mais il reste dans nos coeurs et dans nos tables.
Revenez en mode création : Constatez qu'il ne vous demande pas, cette fois, d'enregistrer la table.
Ainsi, vous devez enregistrer explicitement tout ce qui est changement de structure de la table (comme l'ajout d'un champ, sa suppression, ou sa modification (orthographique par exemple : changer Prenom en PrenomClient)
Mais, à contrario, il n'y a pas besoin d'enregistrer explicitement les données (L'ajout de Michael Jackson par exemple)
Nous allons voir plus précisément à quel instant il sauvegarde les données. Lancez la table en mode saisie de données, et cliquez à la fin du mot Presley.
Ecrivez simplement la lettre x. Vous constatez donc le petit crayon à gauche :
Ce petit crayon veut dire : "OK, tout est enregistré correctement, sauf le petit x que vous avez rajouté."
Appuyez maintenant sur la touche tabulation de votre clavier : vous vous retrouvez sur Elvis, et
le petit crayon est toujours là.
Si maintenant, vous changez d'enregistrement, c'est à dire que vous appuyez sur la touche flèche en bas de votre clavier, ou que vous cliquez sur Steven Spielberg, alors, le petit crayon disparaît : c'est le signe que maintenant, et seulement maintenant, le x à la fin de Presley a été correctement enregistré.
Donc, si vous effectuez des modifications dans un enregistrement, tant que vous restez dans un des champs de ce même enregistrement, Access n'enregistre pas. C'est à l'instant où vous quittez l'enregistrement qu'il sauvegarde réellement les données.
Pour vous dire la vérité, il y a plein de moments où il enregistre concrètement vos données :
Mais aussi, si le coeur vous en dit, il sauvegarde également :
Constatez que la 3ème colonne, qui contient le champ VilleHabitation est un peu trop étroit (C'est écrit VilleHabitat au lieu de VilleHabitation) :
Elargissez cette colonne, comme vous feriez avec Excel, en utilisant la souris :
Maintenant, revenez en mode création : il ne vous pose aucune question. Mais maintenant, fermez la table . Alors, seulement maintenant, il vous demande de l'enregistrer, alors que vous n'avez pas fait de modification au niveau de la structure.
En fait, si !
Le simple fait de changer la taille d'une colonne, c'est, quelque part, modifier la "structure" de la table.
Revenons à nos données
Le talon d'Achille (la faiblesse) de cet enregistrement automatique est que, justement, c'est presque trop automatique. Avec Word ou Excel, quand vous faisiez une grosse bêtise, vous aviez bien entendu le bouton "Annuler", mais vous pouviez également fermer le document sans l'enregistrer, et ensuite le rouvrir.
Lancez votre table en mode saisie de données. Complétez les villes d'Edith Piaf et d'Elvis Presley, et positionnez-vous sur la ville de Steven Spielberg, comme ceci :
Oui, je sais, ce ne sont pas les villes d'habitation réelles, mais comme j'habite en Suisse, j'aime bien indiquer des villes suisses.
Steven habite Lausanne, comme Elvis.
Plutôt que d'écrire à nouveau Lausanne, Appuyez sur le raccourci clavier CTRL-Apostrophe (Attention : je prends en exemple le clavier Suisse-Romand. Sur les claviers d'autres origines, l'apostrophe se trouve peut-être ailleurs).
Et voilà ! Lausanne est maintenant répété pour M.Spielberg :
Complétez également la ville de Michael Jackson : Neuchâtel.
Maintenant, nous allons "accidentellement" remplacer Lausanne de Spielberg par XXX, et ensuite remplacer Steven par YYY et Spielberg par ZZZ.
Comme les trois modifications ont été effectuées dans le même enregistrement, Access n'a pas encore enregistré sur votre disque dur (il y a le petit crayon).
Si maintenant, alors que votre curseur clignote à droite de ZZZ|, vous appuyez sur la touche Esc(échap) , ZZZ redevient Spielberg , et si vous appuyez une 2ème fois sur Esc, alors, c'est toute la ligne (tout l'enregistrement) qui redevient ce qu'il était avant , et le petit crayon disparait.
Si vous continuez a appuyer sur Esc, plus rien ne se passe (Access ne va pas commencer à annuler les autres changements des autres enregistrements). Ce n'est donc pas équivalent à la petite flèche Annuler
Avec cette méthode, vous pouvez rapidement "rattraper le coup", lorsque vous saisissez des données par erreur sur un enregistrement existant.
Si l'enregistrement a été enregistré, la touche Esc est donc inopérante. Heureusement qu'il nous reste cette fameuse petite flèche Annuler ! .
Faisons un test
Appuyez sur : ça ne marche pas (normal).
Cliquez sur Annuler : BBB redevient AAA.
Appuyez une seconde fois sur Annuler .
Mauvaise surprise ! Rien ne se passe !
Aïe Aïe Aïe ! Avec Excel, nous sommes habitués à pouvoir annuler autant qu'on veut, en plus d'avoir la possibilité de fermer et de rouvrir le classeur sans l'enregistrer !
Avec Access, c'est nettement moins souple : une seule annulation est possible ! (Suivant le contexte, il sera possible d'annuler plusieurs fois, mais dans d'autres contextes, il ne sera carrément pas possible d'annuler du tout)
Dans ce cas précis, nous n'avons pas d'autre solution que de réécrire Spielberg à la main. Il n'y a pas de plan B !
Nous allons voir que c'est pire encore avec l'effacement !
Admettons que nous voulions effacer un enregistrement : Elvis Presley.
Pour effacer un enregistrement, il y a deux méthodes : la bonne et la mauvaise.
Voici la mauvaise méthode (mais que beaucoup de monde fait par erreur) :
Outre le fait que ça demande plusieurs manipulations, le souci va être que l'enregistrement ne va pas être supprimé, à proprement parler, mais va être transformé en enregistrement tout vide !
Cliquez sur Steven Spielberg et regardez en bas de votre écran : vous voyez le nombre d'enregistrements de votre table.
Vous êtes sur le 3ème enregistrement d'un total de 4 : il a pris en compte cette satanée ligne vide !
Le 5ème enregistrement n'existe pas (encore). Si vous cliquez sur le nouvel enregistrement, il va écrire que vous êtes sur le 5ème enregistrement d'un total de 5 (ce qui est moyennement juste, puisqu'il n'y a pas encore 5 enregistrements : rien ne prouve que vous allez écrire quelque chose)... Mais c'est ainsi qu'il compte.
Cette mauvaise méthode d'effacement m'a permis de vous montrer le comptage des enregistrements.
Maintenant, voici la bonne méthode d'effacement d'un enregistrement. Avec cette bonne méthode, nous allons, justement, supprimer correctement cette ligne vide qui nous gêne.
Cliquez sur le petit carré gris à gauche de l'enregistrement vide :
Maintenant que la ligne est bleu clair, appuyez sur la touche .
Un message d'avertissement s'affiche.
Répondez simplement oui, et le tour est joué.
Comme vous le constatez, c'est très dangereux ! On a vite fait de perdre de précieuses données !
Aussi, il va nous falloir une sérieuse méthodologie de sauvegardes, que nous verrons un peu plus tard.
Avec la même méthode de sélection, au lieu de supprimer un (ou plusieurs) enregistrements, on peut dupliquer des enregistrements existants.
Admettons que vous désiriez ajouter comme client le fils de Steven Spielberg (Max Spielberg). Ce serait pratique de dupliquer Steven Spielberg, et de changer le Prenom du nouvel enregistrement :
Et voilà le travail !
Il ne reste plus qu'à remplacer Steven par Max dans le nouvel enregistrement :
Revenons à nos suppressions !
Que faire si nous supprimons d'importants enregistrements par mégarde ?
Je dois vous le confesser : Access est bien mal armé ! C'est à vous de faire des sauvegardes régulières !
Vous avez la possibilité de dupliquer vos tables et/ou vos bases de données.
Imaginons que vous ayez une grande table de clients (avec des milliers des clients), et que vous vouliez faire y faire un peu de ménage (effacer les éventuels clients à double, corriger certaines fautes d'orthographes, etc.)
Il serait prudent de faire une copie de la table avant de vous lancer dans cette entreprise ! Comme ceci :
Et voilà : vous avez maintenant une copie conforme de votre table T_Client :
.
Si vous double-cliquez dessus, cette table va s'ouvrir sous la forme d'un onglet supplémentairecomme ceci :
Bien.
Fermez T_ClientBackup
Maintenant, nous allons (Exprès) faire quelques bêtises dans T_Client !
Effacez Edith Piaf et Steven Spielberg.
Comme vous le savez, vous ne pouvez pas annuler !
Nous pourrions sélectionner Steven Spielberg et Edith Piaf, et les copier-coller d'une table à l'autre ! (Vous pouvez essayer de le faire, à titre d'exercice)
Imaginons que ce n'est pas simplement Spielberg et Piaf qui ont été effacés, mais que vous avez donné la tâche de nettoyage à faire à un stagiaire, et qu'il a fait tout plein d'autres bêtises dans la table !
Bref : T_Client a été vraiment très abîmée !
Comment la récupérer depuis T_ClientBackup ?
Ce que nous venons de voir, c'était la première méthode.
L'autre méthode consiste à faire une copie de toute la base de données.
En effet, si vous faites le ménage dans une base de données qui contient beaucoup de tables, c'est peut-être bien plus pratique de dupliquer tout le fichier accdb.
Vous pouvez bien entendu dupliquer votre fichier .accdb depuis l'explorateur Windows (je suppose que vous savez faire )
Mais vous pouvez aussi la dupliquer depuis Access, comme ceci :
Vous choisissez ensuite un emplacement, un nom pour la copie (Backup Formagiciel dans cet exemple), et vous cliquez sur Enregistrer.
Lorsque vous cliquez sur Enregistrer, non seulement, il enregistre la copie de votre base de données, mais, en plus, il l'ouvre ! C'est à dire que maintenant, vous êtes dans le backup et pas dans l'original !
En général, ce n'est pas ce que vous voulez : pour revenir dans l'original, il suffit de cliquer sur Fichier, et de choisir le 2ème fichier dans la liste des bases de données récemment ouvertes, comme ceci :
Pour être certain d'être dans la "bonne" base de données, regardez simplement son nom dans la barre de titre :
Pour connaître précisément le nom et l'emplacement de la base de données dans laquelle vous êtes, cliquez sur le menu Fichier/Informations.
Si vous cliquez sur Afficher et modifier les propriétés, vous verrez également :
Nous venons de voir en détail comment se passe l'enregistrement des données et de la structure des tables. Nous avons vu à quel point la structure et les données sont différents.
Nous avons vu que l'annulation de bêtises n'est pas si souple que dans d'autres programmes, et qu'il est indispensable de maîtriser la copie et la sauvegarde de nos tables et de nos bases de données.
Nous avons également vu comment dupliquer et effacer facilement des enregistrements.
Créez une base de données que vous appellerez ExerciceLecon003.accdb.
Créez-y une table T_Film, avec 3 champs :
Entrez-y un seul film, composé comme suit :
Entrez le 2ème film, en utilisant la technique du Ctrl Apostrophe :
Entrez le 3ème film en dupliquant l'un des deux premiers (technique de "Coller par ajout"), et en le modifiant à la main :
Dupliquez la table T_Film en T_FilmBackup.
Allez dans T_Film, et Supprimez d'un seul coup Rambo 2 et Rambo 3. (Oups ! C'est une erreur... Impossible d'annuler)
Depuis Access, copiez ExerciceLecon003 en SauvegardeSecurite.
Vous êtes donc dans SauvegardeSecurite. Rouvrez ExerciceLecon003.
Image de ce que devrait contenir ExerciceLecon003 à la fin de l'exercice :