Leçon 42 : Etats : Etat instantané Tableau, Etat basé sur une requête, exportation dans Word et Excel, utilisation des fichiers PDF avec Acrobat Reader

Temps nécessaire pour suivre cette leçon : Un peu plus d'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

Aperçu de cette leçon

Dans cette leçon, nous allons continuer sur notre lancée en utilisant un 2ème assistant instantané : Tableau (qui n'est pas plus beau que l'assistant colonne), ainsi que les différentes exportations possibles.

Sommaire

  1. Etats : L'assistant de création d'état instantané en mode Tableau
  2. Etats : Inconvénients des assistants de génération automatique d'états
  3. Etats : Création d'une requête qui servira de base à un état généré par l'assistant automatique en tableau
  4. Etats : Aspect totalement dynamique
  5. Etats : Exportation d'un état dans Word
  6. Etats : Problèmes d'exportation d'un simple état en tant que fichier à part
  7. Etats : Exportation au format RTF
  8. Etats : Impression d'un état dans un fichier .PDF avec le programme Adobe Acrobat Reader
  9. Etats : Envoi d'un état enregistré en format PDF par E-Mail
  10. Etats : apparté : Le snapshot Viewer
  11. Etats : Exportation d'un état vers Excel

Etats : L'assistant de création d'état instantané en mode Tableau

Comme la fois passée avec notre premier état, Demandez un état : Nouveau, et choisissez cette fois "Assistant instantané : Tableau" , choisissez T_Celebrite , et cliquez sur OK :

Comme dans les formulaires instantanés/Tableau, il met les champs l'un à côté de l'autre plutôt que l'un en dessous de l'autre !

...Ce qui fait qu'il a moins besoin de place, et il n'y a plus que 51 pages cette fois, soit 2 enregistrements par page.


Etats : Inconvénients des assistants de génération automatique d'états

Ceci dit, vous aviez raison, ils sont vraiments moches ces états automatiques !

Oh oui !!! Voyez dans celui-ci, mis à part l'écartement beaucoup trop grand entre les enregistrements (à cause des photos), on constate qu'il a orienté la page en mode paysage (en longueur), et surtout, si vous jetez un oeil sur les titres en haut de la page, ils sont souvent tronqués (Pays d'orig, Déc, mensuel, aissance, etc.)

Et encore, on a de la chance sur ce coup-là, il n'a pas tronqué les contenus des champs eux-mêmes - des fois ça arrive selon les cas - d'ailleurs, si on se balade dans les pages, on constate qu'à la page 19, le pays d'origine de Gorbatchev est Russie (Fédér, alors que si on regarde dans la table, son pays d'origine est bien Russie (Fédération de).

C'est méchant ça, comme bug !

C'est vraiment délicat !On a l'impression que l'état est correct sur la première page, et tout à coup, en le regardant de plus près, on constate que sur une certaine page, un certain champ est mal affiché... C'est comme ça...

On ne peut rien faire contre ça ?
Parce que c'est vraiment gênant !

Nous verrons progressivement comment lutter contre ces problèmes de mise en page. Pour l'instant, gardez à l'esprit que les assistants peuvent faire leur boulot incorrectement, et qu'il n'y a PAS de message d'erreur de type "Attention, certains champs risquent d'être tronqués"... Vous êtes prévenu !

Ce que je voulais vous montrer plus particulièrement avec ce 2ème assistant (Assistant instantané Tableau), c'est que s'il y a trop de champs (et dans notre T_Celebrite, on en a pas mal), ça ne fonctionne vraiment pas très bien... Surtout avec cette photo qui prend une place dingue !

Allez, fermez cet état et ne l'enregistrez pas, il est vraiment trop moche. Beurk !


Etats : Création d'une requête qui servira de base à un état généré par l'assistant automatique en tableau

Nous allons créer une requête qui contiendra seulement quelques champs de notre table T_Celebrite, et nous recréerons un état instantané Tableau basé sur cette requête.

Marche à suivre :

  1. Créez une nouvelle requête basée sur T_Celebrite (Revoyez la leçon 21 si besoin est)
  2. Placez y les champs Prenom, Nom et Date de naissance
  3. Triez par ordre alphabétique du Nom (ça a été vu à la leçon 26), ce qui donnera un aspect plus sympathique à notre futur état.
  4. Fermez-là (La requête, je ne me permettrais pas ;-) ), et sauvez-là sous R_CelebriteTrieParNom
  5. Créez un nouvel état instantané Tableau, basé justement sur cette requête R_CelebriteTrieParNom

Cette fois, c'est mieux !

Simplement parce qu'il y a moins de champs, l'assistant ne "bourre" pas tout. Et la photo n'est pas incluse !


Etats : aspect totalement dynamique

Est-ce que les états sont dynamiques ?

Bien sûr ! Chaque fois que vous exécutez votre état, il sera au goût du jour, car il va puiser à chaque fois dans la requête - et donc dans la table - pour se mettre à jour. Faisons une expérience pour mieux comprendre : vous constatez qu'Isabelle Adjani n'a pas de date de naissance. Nous allons lui en inventer une. Marche à suivre :

  1. Fermez cet état, et profitez-en pour l'appeler E_CelebriteTrieParNom
  2. Allez dans la table T_Celebrite (Ou dans la requête R_CelebriteTrieParNom, ça revient au même)
  3. Inscrivez une date de naissance à Isabelle Adjani : 27.06.1959
  4. Relancez votre état E_CelebriteTrieParNom.

Voilà : Isabelle Adjani est maintenant pourvue d'une date de naissance (fantaisiste dans notre cas, comme toutes les autres dates de naissance d'ailleurs)

Logique : L'état va puiser dans la requête, qui elle même va puiser dans la table... C'est génial !

Heureusement que c'est totalement dynamique, sinon, Access perdrait tout de son intérêt.


Etats : Exportation d'un état dans Word

Vous avez la possibilité d'exporter votre état avec sa forme actuelle dans Word grâce à l'icône "Liaisons Office". Cliquez directement sur le W :

Ah OK : Il ouvre Word, et il m'y installe directement l'état tel qu'il était dans Access ! C'est génial, parce que ça va me permettre de le mettre en forme avec Word !

Oui, enfin, non pas vraiment, parce que vous verrez que par la suite, vous allez pouvoir mettre en forme directement les états dans Access sans nul besoin de passer par Word ! Ou alors, peut être certaines mises en forme tout à fait spéciales que vous ne pourrez vraiment pas faire dans Access, alors vous les ferez dans Word, mais il y a un super gros inconvénient : C'est que tout à coup, ce n'est plus dynamique... Imaginez :

- Vous créez un état, basé sur la table T_Celebrite, que vous exportez dans Word. Une fois dans Word, vous commencez à établir des mises en forme, définir certains champs en gras, avec des couleurs, etc.. En procédant comme ça, vous constaterez peut être de petites erreurs : des dates de naissances fausses, des noms mal orthographiés : vous vous direz que vous les changez dans Word puisque vous y êtes. Mais ATTENTION : Ca ne va évidemment pas changer dans Access, et donc, vous allez être bon pour aller changer aussi les données dans la table T_Celebrite...


Etats : Problèmes d'exportation d'un simple état en tant que fichier à part

Bien sûr : Une fois que c'est exporté dans Word, c'est "mort" en quelque sorte...

Oui... Alors finalement, on pourrait se demander si c'est une bonne option que d'envoyer un état dans Word : En fait, il y a une utilité : admettons par exemple que vous utilisez l'E-Mail, et que vous désirez envoyer un état à un de vos collègues, ou un de vos clients : Un état qui regrouperait par exemple toutes les célébrités de France, bien mis en forme et tout... Comment allez-vous faire ?

Je lui envoie directement l'état... Je ne peux pas ?

Eh non ! Ce n'est pas possible ! Si vous êtes dans l'état et que vous allez dans le menu Fichier/Enregistrer sous : , vous n'aurez pas la possibilité d'enregistrer votre état dans un fichier à part... Il vous propose uniquement de l'enregistrer comme un autre état à l'intérieur même de votre base de données...

Dans ce cas, je lui envoie toute la base de données par E-Mail, et je lui dit de cliquer sur E_CelebriteTrieParNom...

Mouaipf... Pas terrible... Déjà, il faut que votre correspondant possède Access, sinon il ne pourra pas l'ouvrir ! Et il ne va peut-être pas installer Access juste pour ouvrir votre état !
En plus, votre base de données pèse quand même un certain poids, et l'envoyer par E-Mail risque de fâcher votre destinataire parce qu'il va mettre une heure pour la recevoir... Sans parler de vous-même... Je ne suis pas certain que vous avez envie de diviulguer l'ensemble des infos de toutes les tables de votre base de données !

C'est maintenant que l'utilité de Word se fait sentir !
J'exporte mon état avec , et le fichier Word résultant, je l'envoie par E-Mail !

Voilà ! Vous avez compris !


Etats : Exportation au format RTF

Mais pourquoi est-ce qu'il me crée un fichier RTF et pas DOC ? : ? C'est quoi RTF ?

RTF sont les initiales de "Rich Text Format". Ce n'est pas un format "propriétaire" de Word. En d'autres mots, si vous envoyez un fichier RTF à quelqu'un qui n'a pas Word, mais qui utilise un autre traitement de texte (Eh oui, il n'y a pas que Word dans la vie...), et bien, il pourra l'ouvrir quand même.

Une fois que vous êtes dans Word, avec votre fichier RTF sous les yeux, vous ne savez pas ou Access l'a enregistré exactement. Pour le savoir, c'est simple: dans Word, vous allez dans le menu Fichier/Enregistrer sous, et comme ça, vous pouvez choisir de l'enregistrer à un autre endroit de votre disque dur, et même de changer le type de fichier . Mais je ne vais pas ici vous en dire plus, car ça sort du sujet.

Avec cette combine, je vais pouvoir distribuer des états à tout va !
Si par exemple j'ai une liste de produits à vendre et qu'un client me demande la liste des prix, hop, je crée un état basé sur une requête qui m'affiche seulement les prix de vente mais pas les prix d'achat, et zou, je l'exporte dans word, je l'enregistre, et je l'envoie par E-Mail ! Je n'ai plus qu'à apprendre comment on envoie un fichier par E-Mail ...

Oui. Ca, c'est carrément un autre cours !

Vous avez raison... Mais...

Mais quoi ?

Mais voilà : Word met en page les données avec sa propre technique, et Access avec ses états utilise toute une autre technique... Alors dans certains cas, la présentation sous Word sera identique à l'état que vous avez sous les yeux, mais, parfois (et c'est imprévisible), la mise en page proposée par Word ne sera pas satisfaisante du tout. Résultat des courses : vous allez devoir tout remettre en page votre fichier Word avant de l'envoyer...
Bon dans notre exemple, ça c'est bien passé parce que les données étaient simples, mais dès que ça devient un peu compliqué, c'est la galère !


Etats : Impression d'un état dans un fichier .PDF avec le programme Adobe Acrobat Reader

On fait quoi dans ces cas-là ?

Bien que ça sorte du sujet, je vais vous parler d'un programme génial : Acrobat, d'Adobe. Je n'ai pas d'actions chez eux, mais je vais faire un peu la promotion de leur produit si vous ne le connaissez pas.

Adobe à mis sur pied un programme, Acrobat, qui permet de générer des fichiers PDF (Printable Document Format - soit Format de Document prêt à Imprimer).

Ce programme permet justement d'envoyer par E-Mail une impression exactement comme si vous imprimiez votre état sur votre imprimante, et que vous pliez votre feuille imprimée, l'insériez dans une enveloppe, et lui expédiez : votre correspondant n'a plus qu'à lire.

Mais l'idée est de se servir plutôt de l'E-Mail. Vous allez imprimer votre état NON PAS sur une feuille de papier, mais dans UN FICHIER PDF.

Pour ce faire, c'est très simple : Allez dans le menu Fichier/Imprimer, et comme imprimante, vous choisissez : "Acrobat PDF Writer"

Ensuite, cliquez sur OK. rien ne va s'imprimer, mais simplement la proposition d'enregistrer votre fichier sous le format PDF : .En l'occurrence, le fichier proposé (que je peux changer) est R_CelebriteTrieParNom.pdf.

Mais je n'ai pas cette possibilité, chez moi ! Je n'ai pas cette fameuse imprimante Acrobat !

Non, et c'est bien là l'idée marketing d'Adobe, c'est que vous devez ACHETER le programme Acrobat. Vous pouvez le commander dans votre magasin informatique habituel, mais il est très possible que vous puissiez le télécharger quelque part sur Internet. Cliquez ici pour voir ce que le moteur de recherche Google trouve sur ce sujet.

C'est moins intéressant tout à coup ! Parce que moi, je dois l'acheter, mais alors toutes les personnes à qui je vais envoyer des PDF vont devoir l'acheter aussi alors ?

Justement, c'est là le plus diabolique : c'est que le programme qui permet de LIRE les .PDF s'appelle Acrobat READER, et ce programme-là est absolument gratuit ! Vous ne payez donc que le programme Acrobat qui permet de CREER les .PDF.

Mais contrairement à Word qui risque de faire des erreurs de mise en page, le PDF va absolument (normalement) conserver la même mise en page.

Pour mieux vous faire comprendre, je vais vous mettre à disposition un .PDF : C'est simplement l'état sur lequel nous sommes en train de travailler que j'ai transformé en PDF.

>>> Cliquez ici pour visualiser R_CelebriteTrieParPrenom.PDF <<<

C'est donc un fichier PDF que j'ai placé sur mon site Internet (Oui, c'est possible) que vous allez visualiser simplement en cliquant dessus. c'est directement votre Internet Explorer qui va afficher ce fichier sur votre écran.

Si vous avez déjà installé Acrobat, ou Acrobat Reader (les deux fonctionnent), pas de problème. Si vous n'aviez encore rien installé, Internet Explorer va ssans doute vous avertir que pour lire les PDF, il doit installer un programme supplémentaire, Acrobat Reader, donc, et si vous acceptez (Vous n'avez pas le choix : Pas d'Acrobat Reader, pas de fichier PDF !), il va aimablement vous le télécharger sans que ça vous crée plus de souci que ça.

Il est d'ailleurs fort probable que ce programnme soit déjà installé chez vous, car, il suffit d'une fois ou vous avez cliqué sur un PDF pour que qu'Acrobat Reader sinstalle sur votre PC.

Dès que vous l'avez sous les yeux, les outils d'Acrobat Reader s'ajoutent dans Internet Explorer, de cette façon :

Puis-je aller dans le menu Fichier/Enregistrer-sous pour enregistrer ce fichier PDF sur mon disque dur ?

Oui.


Etats : Envoi d'un état enregistré en format PDF par E-Mail

Quand j'envoie un fichier PDF par E-Mail, ça se présente comment ?

Sous forme de fichier attaché, donc, à peu près comme ceci : , mais nous n'allons pas aller plus loin avec ces E-Mail, car nous sortons à nouveau du sujet.

 

C'est donc la solution que vous préconisez ?

Plutôt, oui. Les résultats me paraissent réellement plus probants que lors de l'exportation dans Word.


Etats : apparté : le Snapshot Viewer

Il existe également un outil qui s'appelle le SnapShot Viewer, édité par Microsoft, qui permet de faire la même chose qu'Acrobat.
L'avantage principal est qu'il est gratuit du moment que vous avez acheté Access, mais les deux inconvénients majeurs de ce SnapShot Viewer est que d'une part, ça ne fonctionne qu'avec les états Access, et, d'autre part, la personne à qui vous envoyez l'état qui a été généré par ce petit programme DOIT également installer ce programme chez lui ! Ce qui fait que comme c'est tout de même un programme qui pèse 1.7 Méga, vous en avez pour un certain temps à le télécharger vous même ET la ou les personnes à qui vous envoyez l'état.
S'il vous intéresse, vous pouvez le télécharger à cette adresse. Mais ceci dit, pour des questions pratiques et de standard, je préconise largement l'utilisation d'Acrobat.


Etats : Exportation d'un état vers Excel

Et avec l'exportation Excel , c'est le même principe ?

Oui, Excel va essayer de placer les différentes informations dans les cellules, mais il n'y arrive pas souvent très bien. Faites des tests, c'est la seule manière de bien se rendre compte des résultats...

En parlant d'Excel, si vous vous rappelez de la leçon 18, où nous évoquions les importations/exportations, vous vous souvenez peut-être qu'on peut simplement copier/coller une table ou une requête directement d'Access vers Excel... Et comme Excel se compose de cellules, un peu comme une table ou une requête, le résultat, dans ce cas me parait plus sympathique si vous copiez directement la requête dans Excel que si vous exportez l'état dans Excel... Mais vous n'êtes peut-être pas de mon avis, qui sait ? 'est vous qui voyez!

Bon... Hem... On peut résumer ?

Les états étant exclusivement destinés à la visualisation et à l'impression des données, et nous y trouvons une pleiade d'options à cet efft: Ils sont dynamiques (à chaque lancement d'un état, il se rafraîchira en fonction des données qui auraient éventuelleemnt changé dans les tables), et il est possible de les exporter d'un simple clic sur une e icône dans Word ou Excel, par exemple dans le but d'en avoir un fichier séparé pour (par exemple) les expédier par E-Mail.
Toutefois, cette solution est moins confortable, notamment pour des questions de mise en page, que l'utilisation du célèbre programme d'Adobe : Acrobat. La lecture des fichiers PDF est possible grâce au programme gratuit Acrobat Reader, tandis que la création de fichiers PDf est payante. Le SnapShot Viewer, de Microsoft, remplit la même fonction, mais est limitée aux états Access.

Avez-vous bien compris ?

  1. L'assistant Instantané Tableau s'arrange pour que les champs ne soient jamais tronqués
    a. Oui
    b. Non ***

  2. Il est possible, avec la commande Fichier/Enregistrer sous, d'enregistrer un état comme fichier indépendant de la base de données ?
    a. Oui
    b. Non ***

  3. Lorsqu'on exporte un état avec l'icône Word, le format résultant du fichier ainsi exporté est :
    a. TXT
    b. DOC
    c. RTF ***
    d. PDF

  4. Pour générer un .PDF, il est nécessaire d'aller dans le menu
    a. Fichier/Enregistrer
    b. Fichier Enregistrer Sous
    c. Fichier/Enregistrer comme PDF
    d. Fichier/Imprimer ***

  5. Lorsque je crée un état, que j'enregistre sous E_Test, que je vais dans la table qui a servi de source à cet état pour faire quelques modifications dans les enregistrements, et que je relance ensuite cet état :
    a. Les données n'ont pas changé
    b. Les données ont changé en fonction des modifications effectuées ***

  6. Je crée un état E_Test (Etat instantané Tableau), basé sur T_Celebrite, je le ferme, je vais dans T_Celebrite, et j'ajoute le champ "AnimalPrefere", et j'entre un animal pour chaque personne. Je reviens dans mon état :
    a. Il n'a pas changé, et les animaux n'apparaissent pas *** (Essayez pour voir)
    b. Les animaux se sont automatiquement rajoutés après le dernier champ

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.

Exercice

L'exercice consiste à créer une requête R_CelebriteEtRemarque, basée sur T_Celebrite, qui contient l'ensemble de toutes les clébrités (Nom, Prenom et Remarque) qui POSSEDENT une remarque, et le tout trié par ordre alphabétique du Nom.

Vous allez ensuite créer un état instantané Tableau, basé sur cette requête R_CelebriteEtRemarque, l'enregistrer sous le nom E_CelebriteEtRemarque, ET EGALEMENT, ensuite, l'exporter en tant que fichier RTF que vous enregistrerez sous "exercicelecon42.doc" (Petite aide : Lorsque vous exporterez votre état comme fichier .RTF, Access va automatiquement lui donner un nom à lui : C'est seuleemnt une fois dans Word que vous irez dans le menu Fichier/Enregistrer Sous pour le transformer en exercicelecon42.doc)

Option : Dernière partie de l'exercice facultative : Vous envoyer à vous-même un E-Mail avec comme pièce attachée exercicelecon42.doc

La solution se divise donc en 2 parties : D'une part, voici la base de données habituelle telle qu'elle devrait être à la fin de cette leçon, qui contient donc le nouvel état et la nouvelle requête, et, d'autre part, voici le fichier exercicelecon42.doc

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.

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