Temps nécessaire pour suivre cette leçon : Environ une demie heure
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici. Besoin d'aide pour le téléchargement ? : Cliquez ici.
Dans cette leçon, nous allons apprendre à déplacer les champs, mais surtout à utiliser le type de données Date/Heure. Les dates et les heures ont toujours été un casse-tête pour les informaticiens et les machines : En effet : 60 minutes dans une heure, 24 heures dans un jour, 365 jours dans certaines années, 366 dans d'autres... Et je ne parle pas de l'heure d'été ! Alors, il n'y a pas le choix, il faut comprendre comment les PCs et Access fonctionnent avec un système aussi compliqué... |
Exactement. Ouvrez comme d'habitude votre base de données ProFormation si ce n'est déjà fait, et allez dans la table T_Client en mode création. Ajoutez un champ DateNaissance, en type Date-heure :
Vous avez inséré ce champ en dessous des autres. En fait, pour une simple question de confort visuel, il serait bien pratique de déplacer ce champ vers le haut, juste après le prénom, comme ceci : .
Pour ce faire, suivez très scrupuleusement les étapes suivantes :
Lancez à présent votre table en mode saisie de données.
Précisez la date de naissance de Bill Clunton comme étant le 17 mars 1949, de cette façon : . Enregistrez (Shift Enter). Constatez que l'année est maintenant écrite en 4 chiffres : .
Ce problème ne provient pas d'Access. En fait, selon la région du monde dans laquelle vous vous trouvez, les manières d'écrire les dates et les nombres sont différentes. En effet, les américains écrivent d'abord le mois, ensuite le jour, et enfin l'année (03-17-1949). Certaines personnes écrivent l'année sur 2 chiffres, d'autres sur 4, certaines régions utilisent le Slash (/) pour séparer les dates... Les points à la place des virgules pour séparer les décimales des chiffres, etc.
Toutes ces options sont appelées des paramètres régionaux. Voysons comment celà se passe. Restez dans Access, mais nous allons partir en excursion.
Cliquez en bas à gauche de votre écran sur , , . Double-cliquez sur (Ou paramètres régionaux, ça dépend des versions de Windows)
Cliquez sur l'onglet Date : . Dans la zone Format de date courte, , vous pouvez constater que le format est jj.MM.aa si vous avez aperçu tout à l'heure l'année de naissance Bill Clunton sur 2 chiffres, même après avoir enregistré avec SHIFT ENTER. Si vous avez vu 4 chiffres, c'est que le format de la date est jj.MM.aaaa : .
Si ce réglage ne s'effectue pas depuis Access lui-même, c'est que ça a une influence sur d'autres programmes : En fait tous les programmes qui utilisent des dates sont affectés par ces réglages. Par exemple Excel.
Si vous voulez mieux voir comment ce changement affecte l'affichage Access, faites ceci :
Précisez le format de date courte en jj.MM.aa :
Revenez dans Access. Attention : Ne le lancez pas une 2ème fois ! Cliquez sur l'icône de votre barre des tâches (La barre qui contient le bouton Démarrer) qui devrait ressembler à ceci : (Avec Access 200/XP. Avec la version 97, vous n'avez qu'un rectangle marqué Access). Vous devriez constater qu'instantanément la date de naissance de Bill Clunton est écrite comme ceci : .
Rechangez ensuite le format de date courte comme suit (jj.MM.aaaa): . Revenez dans Access, et cette fois, immédiatement, Bill Clunton est né le : .
Oui. Mais dans le cadre de ce cours, nous n'allons pas disséquer toutes les possibilités. Je vous laisserai expérimenter vous même les autres options si vous en avez envie.
Oui, heureusement. Essayons. Dites que Robert Redforde est né le 29.2.1944. Tout va bien. précisez maintenant que Michael Jordane est né le 29.2.63, et vous aurez ce message d'erreur :
dès que vous changerez de champ.
Non, c'est normal, Excel est beaucoup plus cool ! Avec Excel, tant que vous écrivez des dates valides, il les aligne à droite dans la cellule. Par contre, dès que vous écrivez une date invalide, il l'aligne à gauche. Il l'accepte, mais il ne la reconnait pas comme date... :
Mais bon... Vaut-il mieux un programme qui vous renvoie un message d'erreur si on entre une date invalide, ou un programme qui accepte n'importe quoi sans broncher ? On peut se poser la question.
Non, d'accord. Mais en fait, ce que vous ignorez peut-être, c'est qu'il le fait malgré tout. Vous ne vous en rendez pas compte, mais quand vous écrivez quelque chose dans une cellule Excel, il définit le type de données de la cellule en fonction de la valeur que vous avez rentré. Vous entrez du texte ? Il prend en compte que la cellule contient du texte. Vous entrez une date ? Il définit la cellule en type Date.
Pour prouver ce que je dis, je vous propose une expérience amusante dans Excel :
Allez dans Excel, sur une nouvelle feuille, et écrivez 50 dans la cellule A1. Appuyez sur Enter pour valider. Vous constatez que 50 est écrit dans la cellule A1. Bien. Effacez cette valeur (Cliquez sur A1, et appuyez sur la touche DEL ). Il n'y a plus rien d'écrit dans la cellule A1. Maintenant, toujours dans A1, écrivez ceci : 16.3.1997 (Une date quelconque en fait), et appuyez sur ENTER pour valider. C'est bien la date 16.3.1997 qui est écrite. OK, tout va toujours comme prévu. Effacez a nouveau cette date avec la touche DEL . La date disparait.
C'est maintenant que c'est intéressant. Malgré le fait que vous ayez effacé le contenu de la cellule, Excel continue à "Garder en mémoire" que la cellule A1 est en format de Date. Toujours dans A1, réécrivez encore une fois 50. Appuyez sur ENTER. Surprise ! Ce n'est plus 50 qui est écrit, mais 19.02.1900.
Pourquoi le 19 février 1900 ? Parce que c'est le 50ème jour depuis le 1er janvier 1900... Et oui... C'est bien comme ça qu'Excel (Et Access.. et tous les programmes qui utilisent des dates) se débrouillent pour les traiter : Ils comptent le nombre de jours depuis le premier janvier 1900 (ou depuis une autre date, mais ils comptent les jours)...
Comment faire pour que ce soit réécrit 50 dans la cellule ? Cliquez dessus, et allez dans le menu Edition/effacer/format.
Il faut le savoir... Il y a de quoi devenir fou si on ne connait pas cette astuce ! Par contre dans Access, si vous essayez d'entrer 50 dans une date de naissance, il ne va pas du tout vous le transformer en 19.02.1900. Il va simplement vous envoyer sur les roses:
Personnellemenent je préfère Access qui fait plus le "Flic" qu'Excel qui laisse vraiment tout faire...
C'est pourquoi la plupart des utilisateurs aiment Excel, mais se dirigent au bout d'un certain temps vers Access. Mais adopter Access ne doit pas signifier renier Excel,m bien au contraire !
Avec Excel 2000, vous êtes limité entre le 1.1.1900 et le 31.12.9999. Avec Excel 97, il me semble que la limite supérieure se situe dans les années 2100. Avec Access, vous pouvez entrer n'importe quelle date entre le 1.1.100 et le 31.12.9999.
Si vous essayez d'écrire 1.1.99 , ce sera évidemment... 1.1.1999
Cette reconnaissance automatique s'appelle la date pivot. faisons un exemple. Définissez la date de naissance de Bill Clunton à 1.1.30, et Robert Redforde à 31.12.29. Lorsque vous changez de champs ou que vous Enregistrez, vous obtenez ce résultat : . ça montre à partir de quelle année Access change de siècle dans le cas ou on écrit l'année en 2 chiffres. C'est un peu déroutant, mais ce n'est pas du tout une erreur, c'est s'implement une notion de "Pivot".
Alors, imaginez si en plus vous aviez défini , , , , onglet Date , - C'est à dire l'affichage de l'année en 2 chiffres, et bien vous auriez obtenu l'affichage suivant : ... Alors que 100 ans séparent les 2 dates !
Inutile de dire que l'affichage de l'année sur 4 chiffres est plus que recommandée !
Il aurait simplement suffi d'écrire 31.12.1929 au lieu de 31.12.29. D'ailleurs, pour être sûr de votre coup à chaque fois, je vous conseille d'écrire systématiquement l'année en 4 chiffres.
Oui. Admettons que notre table T_Client soit en fait une liste de membres de l'association des couche-tôt (Quelle association ridicule... Mais il faut bien faire un exemple). On pourrait installer un champ HeureCoucher qui va contenir l'heure de coucher de chaque membre. Nous allons essayer.
Ca se passe en 2 temps : Il faut d'abord créer une ligne vide : Cliquez avec le bouton droit de la souris sur DateNaissance, et choisissez "Insérer des lignes"
Ajoutez ensuite à la bonne place le champ HeureCoucher, défini en Date/Heure . Lancez la table en mode saisie de données. Précisez que Bill Clunton se couche à 21:30, et Robert Redforde se couche à 22:15. Constatez qu'Access Affiche 21:30:00 et 22:15:00. Il nous affiche les secondes même si on ne lui demande rien .
Oui. Revenez en mode création, cliquez sur le champ HeureCoucher. Dans les propriétés du champ, vous avez la propriété format. Cliquez dessus. Tout à droite, vous avez une petite flèche. Cliquez dessus, et choisissez Heure/Abrégé
Retournez en mode saisie de données. Maintenant les heures de coucher sont correctement écrites : .
Par exemple, si vous avez une table de Rendez-vous, vous pouvez très bien imaginer un champ ProchainRendezVous, de type Date/Heure en format : DateGeneral. A titre d'exercice, essayez : Renommez le champ HeureCoucher en ProchainRendezVous, et définissez-le en Date/Heure, et Format : Date General. Lancez la table en mode saisie de données. Vous avez toujours les 2 heures de coucher de Bill Clunton et Robert Redforde, mais pour Michael Jordane, Ecrivez exactement ceci, sans les guillemets: "27.3.2001 15:45" (N'oubliez pas l'espace entre 2001 et 15). Vous allez alors obtenir ce résultat : .
Non. Mais ce n'est pas très logique non plus de mélanger des heures et des dates...
Les options générales de Windows portent bien leur nom : Ce sont des options générales : Ce sont les options dont se servent les différents programmes tels qu'Access ou Excel pour afficher les dates ou les heures, ou même les nombres (Virgule ou point pour les décimales selon les régions par exemple).
Mais il peut arriver qu'on veuille, malgré le pays dans lequel on se trouve, CHANGER cette apparence, et afficher les données de façon différente, pas pour toujours, mais seulement dans un certain contexte : Par exemple, dans notre table, tout à l'heure, pour HeureCoucher, nous avons trouvé un peu idiot d'indiquer les secondes ! Mais ici seulement ! Pas tout le temps ! Alors, on ne change pas les options régionales de Windows, mais seulement l'option du champ.
Connaissez-vous le nom du jour ou vous êtes né ? Un lundi, un mardi, un dimanche ? Pour le savoir, il vous suffit d'avoir un champ Date/Heure que vous définissez en format Date Complet. Pour tester ça, utilisez le champ DateNaissance que vous avez déjà à disposition. Ecrivez votre propre date de naissance sur n'importe quel client (Moi, je suis né le 21.2.1965) : . validez en changeant de champ ou en appuyant sur ENTER, et voilà :
Oups ! Ma colonne n'est pas assez large pour tout voir. Vous pouvez l'élargir comme dans Excel, en cliquant entre 2 colonnes et en tirant vers la droite : .
Je suis né un dimanche !
Contrairement à Excel, qui s'accomode des
dates sans broncher, mais qui vous réserve certaines mauvaises
surprises, Access va vous obliger à être strict
dans la définition de vos champs. Un seul type de données
est utilisé pour les années, mois, jours, heures, minutes
et secondes : Date/Heure. |
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
Nous allons parler de sport et de sportifs.
Pour vous aider, voici 2 exemples de données :
Si vous avez des champs texte, ne vous occupez pas de leur longueur, ainsi que des légendes et des Valide Si. Je suppose que ces notions ont été bien acquises aux leçons précédentes. |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon. Besoin d'aide pour le téléchargement ? : Cliquez ici.
Avez-vous une question technique
concernant cette leçon ? Cliquez
ici !
Une remarque sur cette leçon ? Un problème
? Une erreur ? une ambiguité ? Soyez
gentil de m'en informer