Difference between revisions of "FR/FAQ/Base/024"

From Apache OpenOffice Wiki
< FR‎ | FAQ‎ | Base
Jump to: navigation, search
(Sans utiliser l'autopilote)
(Sans utiliser l'autopilote)
Line 24: Line 24:
 
  pour l'enregistrement.
 
  pour l'enregistrement.
 
  Pour cela, afficher les propriétés de la zone de liste (dans la barre de fonctions de formulaire
 
  Pour cela, afficher les propriétés de la zone de liste (dans la barre de fonctions de formulaire
  flottante, cliquer sur '''Propriétés du contrôle''') et afficher l'onglet Données.
+
  flottante, cliquer sur '''Propriétés du contrôle''') et afficher l'onglet '''Données'''.
  Entrer dans "Champ de données" le champ de la table à utiliser pour l'enregistrement.
+
  Entrer dans '''Champ de données''' le champ de la table à utiliser pour l'enregistrement.
  Sélectionner "Sql" pour "Type de contenu de liste".
+
  Sélectionner '''Sql''' pour '''Type de contenu de liste'''.
  Comme "Contenu de liste", entrer "SELECT nomClient, idClient FROM Client". Dans cette requête,  
+
  Comme '''Contenu de liste''', entrer <tt>'''SELECT nomClient, idClient FROM Client'''</tt>. Dans cette requête,  
  nomClient est le premier champ retourné (indice 0) et idClient le second champ retourné (donc  
+
  <tt>'''nomClient'''</tt> est le premier champ retourné (indice 0) et <tt>'''idClient'''</tt> le second champ retourné (donc  
 
  d'indice 1).
 
  d'indice 1).
 
  La liste affichée dans la zone de liste est toujours bâtie sur le champ d'indice 0 (dans le cas  
 
  La liste affichée dans la zone de liste est toujours bâtie sur le champ d'indice 0 (dans le cas  
  présent, elle sera donc constituée des valeurs de "nomClient"). Puisque l'on veut que ce soit la  
+
  présent, elle sera donc constituée des valeurs de <tt>'''nomClient'''</tt>). Puisque l'on veut que ce soit la  
  valeur d'idClient (d'indice 1) qui soit enregistrée, il faut donner à "Champ lié" la valeur 1.
+
  valeur d'idClient (d'indice 1) qui soit enregistrée, il faut donner à '''Champ lié''' la valeur 1.

Revision as of 22:00, 12 March 2007

Dans un formulaire, comment obtenir un contrôle du formulaire qui affiche la valeur du champ d'une table et sauve la valeur d'un autre champ de cette table ?

En utilisant l'autopilote et en créant un nouveau contrôle

Activer l'autopilote en cliquant sur (Dés)activer les AutoPilotes dans la barre de fonctions de formulaire flottante (l'icône apparaît entouré d'un carré).

Dans cette barre de fonction, cliquer sur Zone de liste puis sélectionner l'espace à réserver à ce contrôle. L'autopilote se met en route automatiquement.


Sans utiliser l'autopilote

  • Désactiver l'auto-pilote ;-) en cliquant sur (Dés)activer les AutoPilotes dans la barre de fonctions de formulaire flottante.
  • Créer une "Zone de liste" (cliquer sur Zone de liste dans la barre de fonctions de formulaire flottante) puis sélectionner l'espace à réserver à ce contrôle.

Note : vous pouvez aussi transformer un contrôle existant en une zone de liste en utilisant le menu contextuel (Remplacer par > Zone de liste).

Soit une table Client contenant des noms de clients (champ nomClient) et leurs clefs primaires 
(idClient). 
On veut que la zone de liste affiche la liste des noms de clients, mais que l'enregistrement porte
sur l'idClient du client sélectionné. 
Il va falloir déclarer le champ où l'enregistrement sera sauvé, associer une requête SQL à la zone
de liste et paramètrer le champ de la table à utiliser pour l'affichage ainsi que celui à utiliser
pour l'enregistrement.
Pour cela, afficher les propriétés de la zone de liste (dans la barre de fonctions de formulaire
flottante, cliquer sur Propriétés du contrôle) et afficher l'onglet Données.
Entrer dans Champ de données le champ de la table à utiliser pour l'enregistrement.
Sélectionner Sql pour Type de contenu de liste.
Comme Contenu de liste, entrer SELECT nomClient, idClient FROM Client. Dans cette requête, 
nomClient est le premier champ retourné (indice 0) et idClient le second champ retourné (donc 
d'indice 1).
La liste affichée dans la zone de liste est toujours bâtie sur le champ d'indice 0 (dans le cas 
présent, elle sera donc constituée des valeurs de nomClient). Puisque l'on veut que ce soit la 
valeur d'idClient (d'indice 1) qui soit enregistrée, il faut donner à Champ lié la valeur 1.
Personal tools