formateur informatique

Etat Access pour les commandes des clients

Accueil  >  Bureautique  >  Access  >  Access Avancé  >  Etat Access pour les commandes des clients
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Créer des états de synthèse

Avec cet exercice Access, nous poursuivons l'apprentissage dans la construction des états. Dans l'exercice précédent, sur la base de requêtes, nous avons démontré qu'il était possible de les paramétrer. Conçus sur des critères dynamiques, ils permettent d'offrir des vues adaptées à la demande.

Mais il est temps de fleurter avec l'objectif final de l'application que nous sommes en train d'aboutir. A validation d'une commande, l'utilisateur doit être en mesure de produire la facture du client. Cette facture doit être détaillée en réunissant un grand nombre d'informations, issues de plusieurs tables.

Base de données source
Tout d'abord et comme toujours, nous devons réceptionner les travaux au dernier indice.
  • Télécharger le fichier clients-et-commandes-etats-synthese.rar en cliquant sur ce lien,
  • Le décompresser dans le dossier de votre choix,
  • Puis, double cliquer sur la base de données résultante pour l'ouvrir dans Access,
  • Dans la boîte de dialogue qui s'impose, taper le mot de passe d'accès : abc,
  • Cliquer alors sur le bouton Activer le contenu du bandeau de sécurité,
  • Puis, du fait de la régénération, valider de nouveau le même mot de passe,
Formulaire Access pour construire les commandes des clients et éditer la facture par les états

Nous en avons l'habitude désormais, c'est le formulaire de navigation qui se propose au démarrage, grâce à une macro Access. La partie qui nous intéresse est accessible par son onglet facturation. Son sous-formulaire permet de construire les commandes d'un client. Un clic sur le bouton Valider engage l'archivage de la facture dans les différentes tables liées. Bientôt, nous devrons proposer dans l'enchaînement d'éditer la facture du client. Mais avant cela, nous devons bâtir l'état capable de consolider toutes ces données.

Premièrement, il estnécessaire de construire une requête. Sa vocation est de réunir toutes les informations nécessaires à la construction de l'état. Les informations du client sont archivées dans la table Clients. Les synthèses de ses commandes sont stockées dans la table Commandes qui lui est liée. Le descriptif de chacune est enregistré dans la table liée detail_Commandes. On y retrouve notamment l'information sur les références des articles achetés. Mais la précision sur ces dernières, comme la désignation par exemple, se trouve dans la table Produits. Vous l'avez compris, ce sont les données issues de ces quatre tables que nous devons réunir dans un premier temps.

Regrouper les informations du client
Construire une requête multitable est un jeu d'enfant avec Access. En revanche, nous devons veiller à exclure les champs inutiles pour ne pas alourdir la présentation finale de l'état. Dans le même temps, nous devons nous assurer de bien inclure les champs majeurs, ceux des clés primaires. Ce sont elles qui pilotent l'information en effet.
  • Fermer le formulaire en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue qui suit, sélectionner les tables Clients, Commandes, Detail_commandes et Produits, à l'aide de la touche CTRL,
  • Puis, cliquer sur le bouton Ajouter et sur le bouton Fermer,
Créer une requête Access regroupant quatre tables pour construire un état restituant toutes les informations de la base de données

Nous sommes désormais dans l'éditeur de requête Access. La partie supérieure schématise les tables entrant en jeu, avec leurs relations. La partie inférieure est la grille de requête dans laquelle nous devons ajouter les champs nécessaires à la construction de l'état.

Sur cette grille de requête :
  • Glisser tous les champs de la table Clients,
  • Glisser tous les champs de la table Commandes, sauf Com_client,
Il s'agit en effet de la clé étrangère reliée à la clé primaire Client_id de la table parente.
  • Glisser les champs Det_num, Det_qte et Det_remise de la table Detail_commandes,
  • Ensuite, glisser les champs produit_ref, produit_nom et produit_prix de la table Produits,
Ajouter les champs des tables dans la requête Access en prévision du détail pour le rapport à construire

Les champs intégrés sont nombreux. En conséquence, l'information insufflée à l'état sera dense. Il s'agit d'une facture en effet. Aucun élément ne doit être omis. Et à ce titre, une donnée est manquante, celle du total par article acheté. Nous avions créé une requête avec un champ calculé. La vocation de cette requête est d'alimenter le sous-formulaire des commandes. Nous devons recréer ce champ pour les besoins de synthèse de la facture.
  • Dans la première colonne vide de la grille de requête, créer le champ calculé suivant :
tot_art:[produit_prix]*[Det_qte]

Champ calculé de requête Access pour livrer le total hors taxe par article selon la quantité achetée

Comme vous le savez, un champ calculé doit posséder un nom, tot_art ici. Ce nom doit être suivi du symbole deux points (:). Ce symbole doit lui-même être suivi du calcul. Ce calcul réalise la multiplication entre le champ du prix et le champ de la quantité achetée.
  • Enregistrer la requête (CTRL + S), sous le nom : R_Clients_Commandes,
  • Puis, cliquer sur le bouton Exécuter du ruban Créer,
Requête Access en mode feuille de donnée calculant tous les totaux hors taxes par article acheté

A titre de vérification, nous affichons ainsi son contenu en mode feuille de données. Très peu de commandes ont été passées à ce stade. Nous en créerons de nouvelles pour les besoins de la simulation. Nous notons néanmoins que le client Hamalibou a déjà passé deux commandes. Et chacune d'entre elles est composée de plusieurs articles achetés. En effet, en dernière position, le champ calculé est bien présent. Et il résume parfaitement le total hors taxes par article commandé.

Etat des commandes des clients
Sur la base de cette requête multitable, nous devons donc construire le rapport. Mais nous allons le voir, des paramétrages sont essentiels. C'est la raison pour laquelle, nous devons exploiter l'assistant état.
  • Fermer la requête en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Tout à fait à droite du ruban, dans la section Etats, cliquer sur le bouton Assistant état,
  • Dans la boîte de dialogue, choisir la requête R_Clients_Commandes avec la liste déroulante,
  • Puis, cliquer sur la double flèche dirigée à droite,
Ajouter tous les champs de la requête multitable pour construire un état Access

De cette manière, nous incluons tous les champs de la requête dans la construction de l'état.
  • Cliquer sur le bouton Suivant, en bas de la boîte de dialogue,
Cette nouvelle étape est fondamentale dans l'optique de l'édition de la facture client. Elle permet de définir les niveaux de regroupement. Il s'agit de l'organisation des données. Elles doivent dépendre du client mais aussi de la commande.

Par défaut, un état réunit et mélange toutes les informations dans une même vue. Mais lorsque nous voudrons produire la facture du client, il s'agira bien d'obtenir la vue dédiée. Et cette vue doit rappeler le client et sa commande et non ses commandes. En effet, au fur et à mesure des achats, elles sont toutes archivées et liées.

Nous l'avons appris dans l'exercice précédent, il est possible d'engager des sauts de page sur des sections matérialisées par des regroupements. C'est ainsi que nous pouvons fragmenter les données sur plusieurs pages d'un rapport afin de pointer précisément sur l'une d'entre elles.

Nous devons donc créer un regroupement sur le numéro du client (Client_id). Ainsi, nous pourrons pointer spécifiquement sur sa vue. Mais cela ne suffit pas. Plusieurs commandes peuvent être attachées à un même client. Nous devons donc créer un second regroupement sur le numéro de commande en cours (Com_num). De fait, en pointant à la fois sur le numéro du client et le numéro de la commande, nous obtiendrons la facture à éditer.
  • Sélectionner le champ Client_id et cliquer sur la flèche orientée à droite,
  • Sélectionner le champ Com_num et cliquer sur la flèche orientée à droite,
Niveaux de regroupements pour séparer les commandes des clients dans la vue finale du rapport Access

Comme le démontre l'aperçu, nous engageons deux niveaux de regroupement. L'information y apparaît clairement hiérarchisée.
  • Cliquer de nouveau sur le bouton Suivant pour continuer la construction de l'état,
Cette nouvelle étape permet d'organiser des tris mais pas seulement. Vous notez aussi la présence d'un bouton intitulé Options de synthèse. Nous pouvons ignorer les tris. Ici nous préférons présenter les articles dans l'ordre où ils ont été achetés.
  • Cliquer sur le bouton Options de synthèse,
Options de synthèse Etat Access pour calculer les sommes des commandes

Access détecte la présence de champs numériques. Il les énumère dans cette boîte de dialogue pour proposer des opérations de synthèse comme la somme et la moyenne. L'une d'entre elles pourrait nous intéresser. Il s'agit de la somme sur le champ tot_art.

De cette manière, pour chaque commande, nous obtiendrions l'information sur le total hors taxes. Mais, nous disposons déjà de cette donnée grâce au champ Com_montant. C'est pourquoi, nous choisissons de ne cocher aucune option de synthèse.
  • Revenir sur l'assistant en cliquant sur le bouton Ok,
  • Puis, cliquer sur le bouton Suivant de l'assistant état pour poursuivre sa construction,
  • Dans cette nouvelle étape, cocher la case Paysage et conserver la disposition échelonnée,
  • Cliquer de nouveau sur le bouton Suivant,
  • Dans cette dernière étape, nommer l'état : E_Clients_Commandes,
  • Enfin, cliquer sur le bouton Terminer,
Le rapport s'affiche aussitôt en mode Aperçu avant impression.

Etat Access affichant tout le détail des commandes passées par les clients

Et le moins que l'on puisse dire est que nous avons du pain sur la planche. Il y a une raison essentielle à cette mauvaise organisation de l'information. Comme nous avons créé un champ calculé, il lie potentiellement tous les autres champs d'un même enregistrement. De fait, les informations du client n'apparaissent pas dans son groupe et sont répétées inutilement. Il en va de même pour les données de synthèse de la commande.
  • Tout à fait à droite du ruban, cliquer sur le bouton Fermer l'aperçu avant impression,
Nous basculons ainsi dans la vue en conception de l'état. C'est ici que nos travaux de réorganisation commencent.
  • Dans la section Detail, couper (CTRL + X) les contrôles Client_civilite, Client_nom, Client_prenom, Client_dep et Client_ville,
  • Cliquer sur l'en-tête de groupe Client_id pour activer sa section,
  • Y coller (CTRL + V) les contrôles précédemment coupés,
Dans la section En-tête de page, il convient de ne conserver que les étiquettes respectives. Bien entendu, il est de bon ton d'adapter les intitulés pour un descriptif clair.

Comme nous l'avons appris au travers des exercices, le ruban Organiser offre toutes les fonctionnalités pour répartir et positionner les contrôles. Notamment, les boutons Taille/Espace et Aligner sont d'une aide précieuse.

L'étiquette du champ Com_num peut être déplacée dans la zone En-tête de groupe Com_num pour plus de cohérence.

Réorganisation des champs en conception du rapport Access des commandes des clients

Il est opportun également de remonter les champs de la date de commande (Com_date) et du montant (Com_montant) dans cet En-tête de groupe Com_num.

Ensuite, il convient de réorganiser les données dans la section Detail. Il s'agit précisément du détail de la commande pour chaque client. Le contrôle Det_num peut être supprimé pour gagner de la place. Il en va de même pour le contrôle Det_remise. Effectivement, nous n'avons pas encore mis en place la gestion des remises. Si des champs sont manquants comme le contrôle tot_art pour le total par article, vous pouvez activer la liste des champs. Pour cela, il suffit de cliquer sur le bouton Ajouter des champs existants dans le ruban Création.

Il est préférable, pour les besoins à venir, de placer le titre (Votre facture par exemple) dans la section En-tête de page. Il sera donc répété sur toutes les pages et par conséquent, pour toutes les factures sur lesquelles nous pointerons dynamiquement et spécifiquement. De fait, la section En-tête d'état peut être masquée en réglant son attribut visible dans l'onglet Format de sa feuille de propriétés.

Il est sans doute utile de réduire la largeur de la page pour qu'elle tienne à l'impression sans déborder. Pour cela, vous devez réajuster les positionnements des contrôles et réaliser des tests en mode aperçu. Ces manipulations peuvent sembler fastidieuses mais elles sont essentielles. De plus, une fois le modèle bâti, les factures pourront être éditées à grande échelle.

Enfin, pour la section En-tête de groupe Client_id, il est essentiel de régler son attribut Saut de page sur la valeur Avant section, dans l'onglet Format de sa feuille de propriétés. C'est ainsi que nous livrerons les informations détaillées pour chaque client, explicitement séparées.

Mise en page état Access pour éditer les commandes des clients

Le ruban Format est lui aussi utile pour définir les arrière-plans, ainsi que les contours de certains contrôles.

Une alternance par bandes de couleurs est proposée par défaut à la création de l'état. Elle est censée simplifiée la lecture des informations énumérées. Mais elle peut aussi alourdir une présentation que nous souhaitons simplifier dans la mesure où nous séparons les données. Pour chaque section sélectionnée, il s'agit de régler la propriété Autre couleur de fond sur Aucune couleur. Une fois de plus, cet attribut est disponible dans l'onglet Format de la feuille de propriétés.

Aperçu avant impression état Access du détail des commandes des clients

Si vous affichez l'aperçu avant impression, en naviguant au travers des pages, vous constatez que les clients sont explicitement séparés, grâce au saut de page engagé. Et pour chacun, toutes les commandes qu'il a passées lui sont bien rattachées.

Il est nécessaire de prendre du temps pour réaliser ces réglages et essais. Le rendu final, pour qu'il aboutisse aux exigences, requiert de nombreux ajustements. En effet, pour une facture en bonne et due forme, il est nécessaire de prévoir l'emplacement des blocs d'adresse, dont celui de la société émettrice. Les mentions légales doivent être disposées dans le pied de page. Le montant TTC doit être clairement mentionné. D'ailleurs, ce dernier point, nous le traiterons dans le prochain exercice.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn