Les différences entre Access 2000 et Access 2003

Les entreprises utilisent encore énormément Access 2000, mais le marché s'échelonne entre Access 97 et 2003. EN réalité il existe : Access 1.0, 1.1, 2.0, 95, 97, 2000, XP et 2003, mais il est extrêmement fréquent de passer de la version 2000 à 2003, d'où l'utilité de cette page.

Vous pouvez télécharger ici la base de données de test ayant servi à l'élaboration de cette page.

D'une manière globale, vous pouvez consulter l'aide intégrée d'Access pour voir les nouveautés :

Ici, une autre liste des nouveautés Access 2003.

Sécurité

Demande de Jet, service pack 8

Avec Access 2003, Dès l'ouverture d'une quelconque base de données, vous risquez d'obtenir un message d'erreur monstrueusement compliqué, dont voici la mouture anglaise :

Qu'est ce que c'est que ce machin-là ?

En fait, il faut savoir qu'Access n'est pas exactement ce que vous voyez à l'écran. Prenons l'exemple de Windows : le bouton Démarrer, la souris, les icônes ne sont en fait que la partie visible de Windows. Le noyau interne de Windows, vous ne le verrez jamais. Un peu comme vous ne voyez jamais le moteur de votre voiture, normalement. Access, donc, n'est que la partie émergée du système de base de données. Le noyau central s'appelle en fait "Jet", mais vous n'en entendrez jamais parler. Jamais ? Sauf ici, justement...

Comme vous le savez, les concepteurs de virus sont des gens très méchants qui n'ont de cesse de chercher les faiblesses de votre système. Microsoft à constaté qu'il était possible pour un hacker expérimenté de générer des bases de données programmées pour détruire votre système, et de vous les envoyer par e-mail par exemple.

Cette faiblesse est due au moteur (Jet) qui montre quelques faiblesses. C'est pourquoi il est nécessaire de se procurer la dernière version (le dernier service Pack) de Jet.

Bon, maintenant, on peut légitimement se demander pourquoi Microsoft commercialise Access 2003 sans y inclure cette dernière version... Peut être bien que c'est après sa sortie qu'ils ont constaté la faiblesse de Jet, mais je ne m'avance pas plus dans mes suppositions.

Maintenant, vous n'êtes pas obligé de télécharger ce service pack, mais lorsque vous validerez l'écran ci dessus avec Oui, vous aller alors tomber sur ce 2ème message :

Qui vous informe qu'en fait, seules quelques instructions sont potentiellement méchantes (il existe par exemple une instruction VBA qui s'appelle Kill, et qui permet d'effacer des rfichiers). A cette question, vous pouvez répondre "Non", c'est à dire, non, je prend le risque de voir s'exécuter une instruction "méchante". Entre nous, si vous ouvrez une base de données programmée par vous même ou quelqu'un de votre entreprise, les risques sont nuls. D'une façon globale, n'ouvrez simplement aucune base de données en provenance de gens que vous ne connaissez pas, et basta !

Mais le problème est qua'u bout d'un moment, vous risquez d'en avoir marre de répondre sans arrêt à des questions de confirmation. POur éviter ça, il s'agit donc de télécharger le service pack 8 de jet que vous trouverez ici :
http://support.microsoft.com/?kbid=829558

Vous trouverez également beaucoup plus d'information sur cette nouvelle sécurité (en anglais) ici
http://www.vb123.com/toolshed/03_access/unsafeExpressions.htm

Lorsque vous aurez téléchargé le Service Pack 8, il restera malgré tout une question de confirmation :

Dont on peut se passer si on va dans le menu Outils/Macros/Sécurité, et qu'on demande le niveau de sécurité : Faible :

Niveaux de sécurité des macros

Donc, justement à propos de cette fonctionnalité, un nouveau choix est apparu dans le menu Outils : Outils/Macros/Sécurité : . Dans Word et Excel, déjà depuis la version 2000 (Voire 97?), il y avait cette notion de choisir d'exécuter ou non les macros. Avec Access, c'est seulement à partir d'XP ou 2003 (J'ai seulement 2000 et 2003 sous les yeux, c'est pour ça que je doute) qu'on peut choisir le niveau de sécurité : . Le niveau de sécurité faible est en fait le niveau de sécurité d'Access 2000 : toutes les macros sont exécutables. Le niveau de sécurité Moyen est le niveau de sécurité par défaut sur Word et Excel de la version 2000 à la 2003 : une message de confirmation proposé à l'ouverture d'une base de données. Alors que Word ou Excel ne propose un message d'avertissement que lorsque le fichier contient des macros, le message d'avertissement d'Access apparaît à chaque fois, même s'il n'y a aucune Macro : . On constatera qu'il y a deux choix absolus : soit on ouvre la base ET on peut exécuter les macros, soit on n'ouvre pas la base DU TOUT. Pas question d'inhiber simplement les macros comme dans Word et Excel.

Un nouveau niveau de sécurité est apparu

Avec Word et Excel, on avait l'habitude de 3 niveaux de sécurité avec la version 2000 : Haut (on n'exécute pas de macro), Moyen (on a le choix), ou Bas (toutes les macros sont exécutables). Avec Access 2003, le niveau de sécurité élevé permet d'exécuter les macros "Provenant de sources fiables". Mais qu'est ce qu'une source fiable ?

Exemple de l'envoi d'une lettre certifiée

Voici une image : imaginez que vous envoyez une lettre très importante à un de vos amis aux Etats-Unis. Mais vous savez qu'un vilain espion peut intercepter votre courrier. Non seulement il peut intercepter votre courrier, mais en plus, il peut en changer la teneur. Par rexemple, vous lui avez écrit l'année passée : "Vous me devez 50 dollars, payez sur le compte 444.555 de la banque GrosseFinance", et comme le courrier a été intercepté, le vilain voleur a ouvert délicatement la lettre, il a remplacé le texte par : "Vous me devez 5'0000 dollars, payez sur le compte 333.999 de la banque Escrocs SA", il a refermé la lettre et l'a remise à la poste. Votre client va donc recevoir une fausse information, croyant être de votre part. Vous pourriez demander à votre client de vous joindre par téléphone pour confirmer la teneur de la lettre, mais vous savez que vous allez être inatteignable parce que vous allez partir en vacances. Comment donc lui faire parvenir un courrier et être sûr que ce qu'il reçoit est bien ce que vous avez envoyé ?

Voici une technique : Vous allez d'abord compter le nombre de lettres qu'il y a dans "Vous me devez 50 dollars, payez sur le compte 444.555 de la banque GrosseFinance". Il y a exactement 80 caractères, espaces compris. Vous comptez le nombre de lettres dans votre nom : Vous vous appelez Dupont, donc il y a 6 lettres. Multipliez 80 par 6 et vous obtenez 480. Appelez un de vos amis (Paul), et communiquez lui ce chiffre en lui disant que si votre client l'appelle, il doit comparer 480 avec le chiffre énoncé par le client.

Donc, vous partez en vacances, vous avez posté la lettre à votre client, et vous avez juste donné un chiffre à Paul qui se gratte la tête en se demandant ce que ça peut bien vouloir dire !

Une semaine plus tard, votre client reçoit la lettre. Si le contenu est bien "Vous me devez 50 dollars, payez sur le compte 444.555 de la banque GrosseFinance", et que votre client ne se trompe pas en comptant les lettres, il va multiplier 80 par 6, téléphoner à Paul et Paul lui confirme que 480 est bien le bon chiffre.

Si maintenant, le voleur a intercepté le courrier et remplacé le contenu par "Vous me devez 5'0000 dollars, payez sur le compte 333.999 de la banque Escrocs SA", ce message contient cette fois 82 caractères. et 82 fois 6 = 492. Le client téléphone à Paul, Paul lui dit simplement que 492 n'est pas le bon chiffre, et votre client n'a plus qu'à jeter le message au feu. C'est vrai qu'il n'a pas reçu le bon message du tout, mais au moins il sait que ce message est un faux ! Paul, ici, jouait le rôle de "l'organisme de certification", et en tant que tel, il ne connait pas du tout le contenu du message.

Bien entendu, si le faux message contenait le même nombre de lettres que l'original, votre client aurait été trompé, mais les vrais certificats sont beaucoup plus compliqués et fiables que ce simple petit exemple uniquement destiné à faire comprendre le mécanisme en très gros.

Les vrais certiuficats s'achètent sur Internet. Un organisme qui délivre les certificats s'appelle Thawte.

Un auto-certificat

Afin de travailler dans les meilleures conditions de sécurité, il serait bien que vous laissiez le niveau de sécurité à . Mais pour ce faire, vous-même devez vous fournir un certificat à vous-même. C'est un peu bizarre, je sais, mais c'est possible, et dans ce cas, nul besoin d'acheter un certificat sur le web.

Sans certificat, si vous mettez ce niveau de sécurité, vous ne pourrez simplement pas ouvrir votre base de données. Ce message apparaîtra :

Créez donc votre auto-certificat :

Allez dans l'explorateur, à l'endroit ou est installé Office et exécutez SelfCert.exe . Vous arriverez dans cette boîte de dialogue : . Moi, j'ai écrit certificat Michel, c'est libre à votre imagination. Cliquez sur OK. Confirmez : . Cette marche à suivre est expliquée sur le site de microsoft (http://support.microsoft.com/default.aspx?scid=kb;en-us;217221).

Mise en place du certificat

Maintenant, il s'agit d'apliquer ce certificat dans votre base de données. Marche à suivre :

  1. Ouvrez votre base de données
  2. Allez dans l'environnement VBA (créez un module VBA ou allez dans un module VBA existant)
  3. Allez dans le menu Outils/Signature électronique
  4. Cliquez sur Choisir...
  5. Sélectionnez votre seul et unique certificat, et cliquez sur OK.
  6. Fermez votre base de données, mais pas Access. Vérifiez que Outils/Macros/Sécurité soit sur
  7. Rouvrez votre base de données maintenant certifiée, et voilà. Je crois que la première fois vous avez un message de confirmation vous invitant à toujours faire confiance à "Certificat Michel", et une fois que c'est confirmé, à partir de maintenant, vous pourrez ouvrir cette base sans le moindre message de confirmation sur votre poste de travail. Et si vous essayez d'ouvrir une base de données non certifiée, vous retomberez sans arrêt sur

Le volet Office

Le volet Office est présent dans toutes les applications Office depuis la version XP. AU début, on ne l'aime pas parce qu'il change nos habitudes. A la longue, je m'y suit fait, et finalement j'apprécie sa présence. C'est une sorte de fenêtre verticale qui se place à droite de votre écran sur toute la hauteur :

Ce volet apparait de temps à autre. Par exemple, lorsque vous ouvrez Access, vous avez le volet "Accueil", comme celui présenté ci dessus. Il y a bien entendu la petite croix en haut à droite pour le fermer, et s'il vous donne de l'uticaire, désactivez-le en allant dans le menu Outils/Options :

Et qu'il soit désactivé au démarrage ou simplement dermé avec la croix, vous pouvez le faire apparaitre et disparaître très rapidement avec CTRL F1.

Ce volet devient moins énervant, et de plus en plus pratique quand on sait qu'on peut choisir le genre d'information qui nous intéresse :

L'un de ces volets est le Presse-papiers, qui vous permet de copier plusieurs objets ou textes les uns après les autres, et les coller quand vous voulez, mais ça, ça existait déjà avec Access 2000. La seule nouveauté de ce côté là est que vous pouvez copier 24 objets au lieu de 12.

De plus, le volet Office peut se déplacer, en cliquant-glissant juste ici : , ce qui vous permet d'avoir une sorte de "volet flottant" au milieu de votre écran : . Bien entendu, vous pouvez le redimensionner en allant dans les coins de la fenêtre (ou du volet, selon le vocabulaire que vous préférez). Ici, je l'ai élargi un peu. SI vous faites glisser ce volet en haut, à gauche, en bas ou a droite de votre Access, il va s'intégrer comme bon vous semble. Voici le volet "Dépendances d'objets" intégré au bas de l'écran :

De nouveaux volets ont vu le jour dans 2003 par rapport à XP : de nouveaux volets Office sont disponibles : Mise en route, Aide, Résultats de la recherche et Recherche

Sauvegarde d'une base de données

ENFIN ! Depuis le temps qu'on attendait cette fonctionnalité !!! Fini d'aller dans l'explorateur pour enregistrer une copie de la base de données, on peut, et ce n'est pas trop tôt, directement faire un backup de la base de données en cours. Il suffit d'aller dans le menu Fichier/Sauvegarder une base de données

Informations sur les dépendances d'objets

Ca, c'est pratique, vraiment !

Jusque là, on était un peu dans le flou. Par exemple, imaginez une base de données avec 25 tables, 88 requêtes 50 formulaires et 40 états. Tout à coups, vous voyez une table qui n'a plus l'air se servir à rien. Mais si vous l'effacez, il y a peut être malgré tout des requêtes, formulaires ou états qui sont basés dessus. Alors vous la laissez en place sans oser l'effacer, ou alors il faut passer en revue tous vous formulaires, états et requêtes pour voir si plus personne n'utilise cette table, ou requête d'ailleurs.

Avec les dépendances d'objets, on voit tout de suite qui sert de base à quoi. Ca se passe avec le bouton droit de la souris. Dans la base d'exemple, clioquez avec le bouton droit de la souris sur la table T_Fournisseur, et que je choisis "Dépendance d'objets", je vois le tableau suivant :

Comme T_Fournisseur n'a pas de requête ni de formulaire ni d'état associé, il indique "Aucun" partout.

Par contre, si je clique avec le bouton droit de ma souris sur la requête R_ClientFrance, le résultat est différent. Attention, il faut regarder en haut, il y a deux choix : "Objets qui dépendent de moi" et "Objets dont je dépends".

Voici les "Objets qui dépendent de moi (R_ClientFrance, donc)" : . Un seul état, qui est donc basé sur la requête. La requête elle-même dépend d'une autre requête ou d'une table. Comment savoir ? Il suffit de cliquer sur "Objets dont je dépends" : .

Si maintenant je demande les dépendances d'objets pour la table T_Client, "Objets qui dépendent de moi", j'obtiens un résultat plus complet, et plus discutable :

En effet, T_Pays ne dépend pas du tout de T_Client ! C'est vrai que les deux tables sont liées entre elles avec une intégrité référentielle, mais c'est à mon sens plutôt T_Client QUI DEPEND DE T_Pays... encore qu'on pourrait en débattre.

R_ClientFrance dépend de T_Client, nous sommes d'accord... MAIS dans les états, il dit "Aucun". Or, j'ai un état basé sur R_ClientFrance, qui, elle, dépend de T_Client... Donc, par cascade, l'état dépend de T_Client, non ?

Maintenant, les formulaires : F_Client, d'accord, il est basé sur T_Client. F_Pays est mentionné uniquement parce qu'il a un sous-formulaire basé sur T_Client. Si le sous-formulaire état basé sur une requête basée sur T_Client, il y a fort à parier qu'il ne soit pas mentionné, comme dans le cas de l'état de tout à l'heure.

Entre "Objets qui dépendent de moi" et "Objets dont de dépend", la nuance n'est pas toujours claire. Par exemple, si on sélectionne T_Client, qu'on choisisse "Objets qui dépendent de moi" ou "Objets dont de dépend", dans les deux cas, la table T_Pays apparait.

Par contre, ce qui est fort pratique, c'est que les objets qui apparaissent dans le volet des dépendances d'objets sont en fait des liens hypertextes qui mènent directement aux objets mentionnés en mode création : Cliquez sur T_Pays, et vous y arrivez directement !

L'autre chose intéressante, ce sont les petits "+" et "-" à côté des objets, afin de voir qui dépend de qui dépend de qui etc., comme ceci :

Un point négatif, toutefois, les requêtes en SQL Pur, style les requêtes UNION ne sont pas prises en charge par ce système :

Les balises actives (SmartTags en anglais)

Apparues avec la version XP(2002), les balises actives sont à mi-chemin entre le petit personnage animé qui vous propose de l'aide et le menu contextuel qu'on obtient avec le bouton droit de la souris.

Une balise active contient le mot "active", c'est à dire qu'elle est plus intrusive que le bouton droit de la souris qu'on appelle expressément.

Balise active d'aide sur la propagation des propriétés de champs

Par exemple, prenons la table T_Client. Elle sert de base une requête, un formulaire et un état. Si vous allez dans T_Client et que vous décidez de changer par exemple le format : , avec la version 2000, vous étiez bon pour vérifier tous les formulaires et états pour également ajouter cette nouvelle information. Avec la version 2003, une balise active apparaît, dès que vous avez sélectionné le nouveau format : . En cliquant sur cette balise active, vous avez alors la possibilité de propager ce nouveau format : . En choisissant cette option, la boîte suivant apparaît : , qui vous permet de sélectionner le ou les objets qui contiennent ce champ et qui vont alors être mis à jour en conséquence. Remarquez que la requête R_ClientFrance n'est pas dans la liste, alors qu'elle contient le champ SalaireMensuel. Bug ? Je ne sais pas...

Toujours est il qu'on peut remarquer l'utilité de la balise active. En effet, Microsoft aurait pu choisir de laisser l'utilisateur utiliser le menu contextuel de sa souris pour demander la même chose, mais il s'agit de rendre l'utilisateur plus attentif. Il semble nécessaire de propager les champs, comme une sorte de petit ange gardien qui vous tape sur l'épaule. Le principe de la balise active aide l'utilisateur à FAIRE des choses NECESSAIRES, le menu contextuel permet simplement d'atteindre rapidement des fonctionnalités moins cruciales (comme copier, coller, trier...)

Balise active d'aide à la réduction d'un état (Balise d'erreur)

Quand on crée un état, l'une des erreurs les plus fréquentes est d'élargir la zone d'impression au delà des dimensions du papier, comme ceci :

Avant, on devait attendre de lancer l'état avant d'avoir le message d'erreur

Maintenant, une balise active se trouve ici : . En cliquant dessus, une pléiade de choix est proposé :

Dans ce menu, le dernier s'intitule "Options de vérification des erreurs". EN cliquant dessus, on peut alors voir les autres balises d'erreur : .

"Activer la vérification des erreurs" va donc afficher ou non les balises d'erreur. La couleur, c'est la couleur du tout petit triangle dans le coin ()

Etiquettes et contrôles non associés

Je n'ai pas compris ???

Nouvelles étiquettes non associées

Ca c'est assez idiot. Quand vous êtes dans un formulaire ou un état, vous pouvez simplement ajouter du texte grâce à l'icone . Cette nouvelle étiquette n'est associée à aucun champ, c'est normal. Mais que veut dire "Associé à un champ". Eh bien, quand vous faites glisser un champ dans un formulaire, il y a le champ et son étiquette qui suit , quand on place une étiquette Aa toute seule, une balise d'erreur apparait, qui permet de l'associer à un champ, de manière à ce que quand ils sont associés, quand on déplace le champ, ça déplace également l'étiquette qui va avec. BREF, si vous n'avez rien compris, ce n'est pas grave DU TOUT !

Erreurs de raccourci-clavier

Apparemment, il s'agirait d'une balise active d'erreur surgissant si l'utilisateur essaye d'assigner le même raccourci clavier à deux icônes, ou deux objets de la base de données, ou deux contrôles dans un formulaire mais je ne suis jamais arrivé a la faire apparaître. Je recherche d'ailleurs toujours la manière d'assigner un raccourci clavier à un contrôle dans un formulaire. Avis aux amateurs ?

Propriétés de contrôle non valides

Cette balise active me laisse assez perplexe. Je vous renvoie à cette page
http://office.microsoft.com/en-us/assistance/HP063607061036.aspx
pour en savoir plus...

Erreurs d'état

C'est ce qu'on a vu plus haut (largeur d'état)

Balises actives personnalisées

Dans les formulaires, si on demande les propriétés d'un champ texte, par exemple :

il est possible de sélectionner des balises actives en cliquant sur

Cette boîte apparaît :

Maintenant, voici le contenu de la parpriété Balises Actives : "urn:schemas-microsoft-com:office:smarttags#date"

Quand vous allez lancer le formulaire en mode saisie de données et que vous placez votre souris (sans même cliquer) au dessus du champ DateNaissance, vous verrez une balise active : . En cliquant dessus, vous aurez un menu qui permet de soit ouvrir le calendrier d'Outlook (mais pas sur la date indiquée étrangement...), soit de planifier une réunion (Toujours dans Outlook) - POur peu qu'Outlook (et pas Outlook Express) soit installé !

Vous avez peut être remarqué le bouton en bas à gauche de la boîte de dialogue : "Balises actives supplémentaires". En cliquant dessus, on arrive sur une page de Microsoft fort peu convaincantes. En cherchant sur le Web, par exemple avec Google "Smart Tags" ou "Balises actives", on peut trouver des balises actives personnalisées. Par exemple, Il peut éventuellement être possible de dénicher une balise active qui convertit un montant exprimé en dollar, en Euro par exemple... à L'usage, j'ai constaté que ces balises actives deviennent vite insupportablement compliquées à mettre en place quand on rêve de personnalisation (Et je ne parle pas des problèmes quand vous partagez une base de données avec d'autres personnes, si la base a des balises actives personnalisées). J'ai conclu que rien ne valait un bon vieux bouton de commande avec un poil de VBA derrière.

La balise active de correction automatique

Voici une balise active d'aide à la saisie fort productive !

C'est surtout avec Word qu'on utilise les options de corrections automatique. Mais il est bion se savoir qu'Excel, PowerPoint et Access disposent de la même fonctionnalité, déjà depuis la version 97 d'ailleurs.

SI vous allez dans le menu Outils/Options de correction automatique, voici la différence :

Access 97, 2000 ou XP :

Access 2003 :

Une case à cocher supplémentaire fait son apparition : "Afficher les boutons d'options de correction automatique". En fait de bouton, c'est une balise active.

Quand cette nouvelle case est cochée, théoriquement, lorsque vous êtes dna sune table, requête ou formulaire, et que vous écrivez un mot erroné (Par exemple lundi au lieu de Lundi), comme il a la case cochée "Mettre une majuscule aux noms de jours", il va donc vous faire apparaître une balise active tout près de votre champ qui contient lundi, et vous proposer de le transformer en Lundi. Mais je pense qu'il y a un bug énorme avec cette fonctionnalité, car j'y suis effectivement arrivé une fois, à faire apparaître cette balise active. Mais j'ai décoché la case "Afficher les boutons d'options de correction automatique" pour essayer, et à ce moment-là, il corrige immédiatement sans me demander mon avis. Ensuite, j'ai RE-coché cette case, et plus rien ! Plus de balise active à l'horizon... Si quelqu'un a une idée ?

Prise en charge des thèmes Windows XP

Je n'ai rien-compris-du-tout !

Voici la prose incompréhensible de Microsoft ::

"Le système d'exploitation Microsoft Windows XP intègre plusieurs thèmes. Si vous n'avez pas choisi le thème par défaut, Access applique le thème sélectionné aux affichages, boîtes de dialogue et contrôles. Vous pouvez empêcher les contrôles de formulaire d'hériter des thèmes du système d'exploitation en configurant une option dans la base de données ou le projet."

Formats de fichier

Par défaut, lorsque vous utilisez Access 2003, le format est Access 2000 . Apparemment, (dès la version 97) il existe 3 formats de fichiers :

  1. Access 97
  2. Access 2000
  3. Access XP(2002) / 2003

Si vous acceptez d'utiliser le format de fichier Access 2000 en travaillant sous 2003, la base de données pourra s'ouvrir (et même simultanément) avec Access 2000, XP et 2003. Bien entendu, les utilisateurs d'Access 2000 ne verront pas les fonctionnalités récentes comme les graphiques croisés dynamiques ou les balises actives par exemple, mais l'opération est tout à fait possible.

Avec le menu Outils/Utilitaires de la base de données/Convertir une base de données , vous pouvez convertir la base en fomat XP(2002)/2003 (Qui serait dont identique). Une fois que cette coinversion est effectuée, le partage avec les utilisateurs d'Access 2000 n'est simplement plus possible.

Au vu de ce que je viens d'expliquer, on peut légitimement se demander l'intérêt de choisir le format 2002/2003 ???

J'ai pensé que c'était une question de taille, mais j'ai comparé : une base de données, qu'elle soit en format 2000 ou 2003, prend à peu près le même espace-disque. S'agirait-il de questions de performance ? Si vous le savez, n'hésitez-pas à m'informer...

Toujours-est il qu'a tout moment, vous vouvez donc convertir la base de données à tout moment en 97, 2000 ou XP/2003. Si vous désirez que par défaut, toutes les nouvelles bases de données soient en format XP/2003, ça se passe dans Outils/Options : .

Listes déroulantes

Restrictions dues aux relations

Avec Access 2000, si on se rend dans un champ d'une table déjà mis en relation avec un champ d'une autre table. Hmmm c'est compliqué ! Prenons un exemple : Si vous ouvrez la table T_Client, et que vous allez dans le champ PaysOrigine, et que vous essayez de refaire l'assistant liste de choix, avec Access 2000, il vous laisse faire, avec Access 2003, voici le message d'erreur du au fait que T_Client est liée à T_Pays :

Il vous faudra donc casser la relation AVANT de faire ou refaire votre liste de choix avec l'assistant

Tris possibles

Il est possible de trier la liste déroulante. Avec Access 2000, si vous créez uen liste déroulante basée sur une autre table, les choix de la liste sont dans le même ordre que dans la table. S'ils ne sont pas triés alphabétiquement, mais que vous voulez que ça le soit, vous étiez bon pour créer une requête basée sur la table qui triera les enregistrements. Cette requête servira alors de base à votre liste déroulante.

Ou, d'une manière différente, corriger le contenu de la source : , de manière à ajouter le tri croissant.

Avec la version 2003, une étape supplémentaire de l'assistant liste de choix fait son apparition :

Je ne pense pas qu'il y ait besoin d'explication quant à l'utilisation de cette nouvelle boîte de dialogue.

Attention : j'ai eu quelques échos comme quoi ce tri ne fonctionnerait pas toujours.

Requêtes et SQL

Changement de police

Cette option n'intéressent que les programmeurs qui ont l'habitude de travailler en mode SQL dans les requêtes. Avec les versions antérieures à 2003, lorsque vous travailliez en mode SQL dans les requêtes (), vous deviez presque prendre une loupe selon la résolution de l'écran que vous aviez pour lire les instructions. Avec Access 2003, vous pouvez définir la police et la taille des caractères dans le menu Outils/Options, onglet Tables/requêtes, en bas à gauche : . Maintenant, le mode SQL est nettement plus lisible. Et pour les formateurs tels que moi, c'est vraiment plus pratique quand on passe une requête SQL au rétroprojecteur : .

Par contre, c'est Buggé. Eh oui ! Regardez la requête en mode création après avoir appliqué la police Courier New, Taille 15 : . Dommage...

Aide contextuelle pour le mode SQL

Les programmeurs VBA avaient déjà l'habitude de se positionner sur un mot clé, comme DoCmd ou MsgBox par exemple, et d'appuyer sur la touche F1 pour obtenir de l'aide sur ce mot-clé spécifique. Avec Access 2003, il est mainteant possible, en mode SQL de se positionner sur un mot clé SQL tel que SELECT ou UNION, et d'appuyer sur F1. L'aide apparait sur le mot spécifié. J'ai trouvé pratique.

Tables liées

Petite amélioration, mais qui peut dépanner dans certains cas. Lorsque vous avez une table liée dans votre base de données, c'est à dire une table que vous avez acquise à l'aide du menu Fichier/Données externes/lier les tables, vous avez une petite flèche comme ceci, indiquant que la table n'est pas présente physiquement dans la base de données actuelle :

Avec Access 2000, lorsque vous sélectionnez une de ces tables liées et que vous allez dans Edition/Copier, et directement après dans Edition/Coller, vous avez cette boîte de dialogue :

Les deux premières options permettent seulement de faire une liaison sur liaison : C'est à dire qu'après avoir cliqué sur OK, vous avez une table liée de plus :. Avec Access 2003, la boîte contient une option de plus qui permet d'obtenir une copie LOCALE de la table liée : . Ce qui fait qu'en copiant collant une table attachée avec cette option, on obtient une copie bien réelle dans la base actuelle, qui a donc évidemment perdu son lien avec la table d'origine.

Avec Access 2000, on pouvait également faire ça, mais il fallait entreprendre une requête de type "Création de table". Petite amélioration, donc...

Aide

Le petit assistant animé est moins intrusif

Ouf ! Personnellement, il m'amusait 5 minutes le petit chien ou le petit trombonne animé ! Maintenant, l'appui de la touche F1 fait apparaître le volet Aide. A l'usage, j'ai trouvé que cette nouvelle méthode était nettement plus facile à utiliser.

De plus l'aide se connecte maintenant automatiquement au site de Microsoft pour obtenir plus d'informations.

Au fur et à mesure des versions, j'ai cru constater que les textes d'aides étaient de plus en plus compréhensibles. Dans 10 ou 15 moutures, on aura peut être droit à une aide véritablement destinées à ceux qui ne connaissent rien à Access et qui veulent se former en autodidacte :-)

Sharepoint

Qu'est-ce que SharePoint ? A vrai dire je n'en sais rien. Je n'ai pas investi suffisemment de temps dans mes recherches pour comprendre.

EN attendant cette page créée par Microsoft semble donner des éléments de réponse :

http://www.microsoft.com/france/office/sharepoint/prodinfo/topten.asp

ainsi que celle-ci :

http://www.microsoft.com/france/entrepreneur/Produits/FichesPratiques/5EtapesPourUnIntranetDansVotrePmeAvecOfficeXpEtSharepointTeamServices.mspx

Voici simplement recopiée la liste des innovations 2003 en rapport avec SharePoint :

Importation, exportation et liaison à une liste Microsoft Windows SharePoint Services dans Access
Vous pouvez effectuer les opérations suivantes avec une liste Windows SharePoint Services :
- exporter le contenu d'un table ou d'une requête dans une liste ;
- importer le contenu d'une liste dans une table ;
- lier une table à une liste.

Exportation et liaison avec des données Access dans Windows SharePoint Services
Vous pouvez désormais exporter une liste en mode Feuille de données à partir de Windows SharePoint Services vers une table statique ou une table liée dans Access. Si vous exportez dans une table statique, vous créez une table dans Access. Vous pouvez ensuite afficher et modifier la table indépendamment de la liste d'origine dans Windows SharePoint Services. De la même façon, vous pouvez modifier la liste dans Windows SharePoint Services, sans que cela ait un impact sur la table dans Access.
Si vous exportez dans une table liée, vous créez une table dans Access et une liaison dynamique entre la table et la liste, de façon à refléter les modifications de la table dans la liste et inversement.

Tablet PC

N'utilisant pas ce périphérique, je ne peux malheureusement pas en dire plus que ce qu'en dit Microsoft :

Prise en charge des ardoises électroniques (Tablet PC) Une ardoise électronique permet la saisie manuscrite rapide directement dans les documents Office, similaire à l'utilisation d'un stylo et d'une impression. En outre, vous pouvez désormais afficher les volets Office horizontalement pour vous aider à effectuer votre travail sur l'ardoise électronique à votre convenance.

Amélioration de la qualité des prochaines versions

Lorsqu'un programme plante sauvagement, vous avez un message d'erreur qui vous informe que vous pouvez envoyer l'information à Microsoft. Mais il me semble que cette fonctionnalité est directement liée à Windows XP, et pas à Access. D'après ce texte de Microsoft, il y aurait une autre façon de participer à l'améliorationd es futures versions d'Access... Mais je ne vois pas de quoi ils veulent parler. Voici ce qu'ils disent :

Amélioration de la qualité pour les utilisateurs Microsoft s'efforce d'améliorer la qualité, la fiabilité et les performances de ses logiciels et services. Le Programme d'amélioration du produit permet à Microsoft de recueillir des informations sur votre configuration matérielle et sur la façon dont vous utilisez les programmes et services Microsoft Office afin d'identifier des tendances et modèles d'utilisation. Votre participation à ce programme est facultative et la collecte de ces informations est anonyme. En outre, les rapports d'erreur et les messages d'erreur ont été améliorés de façon à vous fournir la méthode la plus facile pour signaler les erreurs et les informations les plus utiles relatives aux alertes lorsque vous rencontrez un problème. Pour finir, avec une connexion Internet, vous pouvez envoyer vos commentaires à Microsoft concernant un programme Office, le contenu de l'aide ou le contenu du site Microsoft Office Online. Microsoft améliore régulièrement le contenu grâce aux commentaires et suggestions de ses utilisateurs.

XML

XML (eXtended Markup Language) est un langage de description de données. On entend parler de XML à toutes les sauces, mais à quoi sert-il, cet XML ? Lorsque vous utilisez Word, vous enregistrez vos données en .DOC. Excel en .XLS, Access en .MDB. Mais lorsqu'il s'agit de transmettre un document Excel par E-Mail à quelqu'un qui n'a pas Excel, il y a un problème. Quand vous voulez envoyer une base de données Access ou un document Word à un correspondant qui ne possède pas le logiciel pour le lire, il y a un problème.

En général, on enregistre le document en format PDF (Printable Document Format, d'Adobe), et on envoie ce fichier PDF car tout le monde peut lire les .PDF. C'est une solution. Une autre solution est d'enregistrer la table Access, la feuille Excel ou le document Word en .TXT, car les .TXT sont lus par toutes les machines, mais la mise en forme est limitée.

XML est une sorte de format, ou plutôt une sorte de philosophie de présentation des données. Mais un petit exemple vaut mieux qu'un grand discours :

Dans votre base de données Access 2003, cliquez avec le bouton droit de votre souris sur T_Client, et choisissez Exporter dans le menu contextuel. Dans "Type de fichier", choisissez XML, comme nom de fichier : "Liste de clients", et Exporter :. Demandez juste "Données XML", et cliquez sur OK : . A présent, si vous allez dans l'explorateur, vous allez trouver "Liste des clients.XML" : . Si vous ouvrez ce fichier à l'aide de votre bloc-notes (Notepad), vous verrez ceci :

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2004-10-07T09:29:04">
<T_Client>
<Titre>Monsieur</Titre>
<NomClient>Weissmuller</NomClient>
<Prenom>Johnny</Prenom>
<Domaine>Cinéma</Domaine>
<EtatCivil>Célibataire</EtatCivil>
<Decede>1</Decede>
<SalaireMensuel>29200</SalaireMensuel>
<DateNaissance>1928-01-17T00:00:00</DateNaissance>
<Remarque>incarnait Tarzan à l&apos;écran</Remarque>
</T_Client>
<T_Client>
<Titre>Monsieur</Titre>
<NomClient>Senna</NomClient>
<Prenom>Ayrton</Prenom>
<Domaine>Sport</Domaine>
etc.

Les deux premières lignes sont les lignes de spécification de la version XML utilisée (en fait c'est toujours 1.0) ainsi que le codage des caractères (Polices de caractères occidentale, idéogrammes chinois, etc...)

Ensuite, on voit que les champs sont encadrés comme ceci : <NomClient>Weissmuller</NomClient>. Ce sont des balises XML. C'est à dire que Weissmuller est décrit par <NomClient>. C'est pour celà qu'XML est un langage de description de données. Et vous constatez que c'est un simple fichier texte, utilisable par le bloc-notes.

Ce qui est génial avec XML, c'est qu'on peut maintenant réimporter dans Access la table exportée en XML. Il suffit d'aller dans le menu Fichier/Données externes/importer, et de choisir le type de données XML, choisir "Liste des clients.XML" et OK. Un bémol toutefois : la réimportation transforme tous les champs en type texte, mais il y a peut être des options d'exportaion ou d'importation XML qui permettent de remédier à ce problème, je n'ai pas assez fouillé.

On peut maintenant se rendre compte d'une chose : Imaginons que j'ai une liste de données générée par un gros système comme l'AS-400, SQL Server, Oracle, MySQL (je ne connais pas bien ces systèmes, donc excusez les imperfections de mon explication). Depuis un de ces systèmes, lorsqu'on veut récupérer une table en Access, généralement, on exporte en fichier texte, et on récupère avec Fichier/Données externes/importer. Ca se passe généralement assez bien.

Si maintenant on exporte en .XML, vu que les données sont décrites avec précision, on peut imaginer que l'importation dans Access se fait sans la moindre douleur. Il est même possible d'imaginer (mais il faut savoir comment faire) que le type des données soit décrit, comme ceci apr exemple : (Exemple sorti de mon imagination)

<SalaireMensuel>
  <Type>
    Numerique, Réel simple
  </Type>
  <Donnee>
    29200
  </Donnee>

</SalaireMensuel>

Et, rien n'empêche d'imaginer qu'Access puisse travailler directement avec un fichier XML. L'avantage ? Quelqu'un peut modifier les données avec Access, un autre avec un simple bloc-notes, et un troisième avec MySQL (S'il supporte le XML en natif).

Encore une fois, toutes mes excuses aux spécialistes XML qui ont certainement remarqué des choses incorrecte dans cette section, mais l'idée est d'expliquer le pincipe d'XML aux novices (dont je fait pratiquement partie).

Evénements

Evénements de formulaires

De nouveaux événements de formulaires sont apparus

Evénament Explications
Sur roulement de la souris Il est maintenant possible de contrôler les actioons de la roulette de la souris. Un paramètre permet de savoir dans quel sens la molette est roulée.
Avant Info-Bulle  
Lors de la commande Cmd Enabled  
Lors de la commande Cmd Checked  
Lors de la commande Before Execute  
Lors de modifications de données  
Lors de modifications du jeu de données  
Lors de modifications du tableau croisé dynamique  
Lors de modifications de la sélection  
Lors de modifications de l'affichage  
Lors de la connexion  
Lors de la déconnexion  
Avant requête  
Sur requête  
Après mise en page  
Avant rendu  
Après rendu  
Après rendu final  

Tableaux croisés dynamiques, graphiques croisés dynamique

Access XP permet enfin la création de tableaux et de graphiques croisés dynamique en natif. Avec Access 2000, on pouvait déjà créer des tableaux croisés dynamique, mais il s'agissait d'un lien vers Excel 2000, qui crée le tableau croisé dynamique lui-même. Inutile de dire que cette fois, le résultat est nettement plus stable, rapide et fiable !

Lorsqu'on se trouve dans un formulaire, on peut maintenant choisir l'affichage Tableau croisé dynamique ou Graphique croisé dynamique : .

---