Contenu

# Données

L'onglet Données permet d'assigner une source de données à l'élément de contrôle sélectionné.

Pour accéder à cette commande...

Ouvrez le menu contextuel d'un élément de formulaire sélectionné, choisissez l'onglet Propriétés du contrôle - Données.

Ouvrez la barre d'outils Ébauche de formulaire, cliquez sur l'icône Contrôle - onglet Données.

Pour les formulaires avec connexion de base de données, la base de données correspondante est définie dans les propriétés de formulaire. Vous trouverez les fonctions concernées sur l'onglet Données.

Les paramètres possibles de l'onglet Données d'un contrôle dépendent du contrôle respectif. Vous ne verrez que les options qui sont disponibles pour le contrôle actif et son contexte.
Les champs suivants sont disponibles :

## Cellule liée

Spécifie la référence à une cellule liée sur la feuille de calcul. L'état ou le contenu du contrôle est lié au contenu de la cellule. Les tableaux suivants dressent la liste des contrôles avec les types de liens correspondants :

### Case à cocher avec cellule liée

Action | Résultat
--- | ---
Sélectionnez la case à cocher : | L'expression TRUE est saisie dans la cellule liée.
Désélectionnez la case à cocher : | L'expression FALSE est saisie dans la cellule liée
La case à cocher à trois états possède l'état "indéterminé" : | L'expression #NV est saisie dans la cellule liée.
Saisissez une valeur ou une formule qui retourne une valeur dans la cellule liée : | Si la valeur saisie est TRUE ou non nulle, la case à cocher est activée. Si la valeur saisie est FALSE ou 0, la case à cocher est désactivée.
Effacez le contenu de la cellule liée ou saisissez du texte ou une formule qui retourne du texte ou une erreur : | La case à cocher est définie sur l'état "indéterminé" si c'est une case à cocher à trois états ; sinon, elle est désactivée.
Sélectionner la zone. La zone Valeur référentielle contient du texte. | Le texte de la zone Valeur référentielle est copié dans la cellule.
Désactiver la zone. La zone Valeur référentielle contient du texte : | Une chaîne vide est copiée dans la cellule.
La zone Valeur référentielle contient du texte. Saisissez le même texte dans la cellule : | La case à cocher est activée.
La zone Valeur référentielle contient du texte. Saisissez un autre texte dans la cellule : | La case à cocher est désactivée.

### Bouton radio avec cellule liée

Action | Résultat
--- | ---
Sélectionner le bouton radio : | L'expression TRUE est saisie dans la cellule liée.
Pour désactiver le bouton radio, il suffit d'en activer un autre : | L'expression FALSE est saisie dans la cellule liée
Saisissez une valeur ou une formule qui retourne une valeur dans la cellule liée : | Si la valeur saisie est TRUE ou non nulle, le bouton radio est activé. Si la valeur saisie est FALSE ou 0, le bouton radio est désactivé.
Effacez le contenu de la cellule liée ou saisissez du texte ou une formule qui retourne du texte ou une erreur : | Le bouton radio est désactivé.
Cliquez sur le bouton radio. La zone Valeur référentielle contient du texte : | Le texte de la zone Valeur référentielle est copié dans la cellule.
Cliquez sur un autre bouton radio du même groupe. La zone Valeur référentielle contient du texte : | Une chaîne vide est copiée dans la cellule.
La zone Valeur référentielle contient du texte. Saisissez le même texte dans la cellule : | Le bouton radio est activé.
La zone Valeur référentielle contient du texte. Saisissez un autre texte dans la cellule : | Le bouton radio est désactivé.

### Zone de texte avec cellule liée

Action | Résultat
--- | ---
Saisir du texte dans la zone de texte : | Le texte est copié dans la cellule lié.
Effacer le contenu de la zone de texte : | Le contenu de la cellule liée est effacé.
Saisir du texte ou une valeur dans la cellule liée : | Le texte ou la valeur est copié(e) dans la zone de texte.
Saisir une formule dans la cellule liée : | Le résultat de la formule est copié dans la zone de texte.
Effacer le contenu de la cellule liée : | Le contenu de la zone de texte est effacé.

### Champ numérique et champ formaté avec cellule liée

Action | Résultat
--- | ---
Saisir une valeur dans le champ : | La valeur est copiée dans la cellule liée.
Effacer le contenu du champ : | La valeur 0 est définie dans la cellule liée.
Saisissez une valeur ou une formule qui retourne une valeur dans la cellule liée : | La valeur est copiée dans le champ.
Effacez le contenu de la cellule liée ou saisissez du texte ou une formule qui retourne du texte ou une erreur : | La valeur 0 est définie dans le champ.

### Zone de liste avec cellule liée

Les zones de liste prennent en charge deux modes Liaison, voir la propriété "Contenu de la cellule liée ".

1. Contenu lié : synchronisez le contenu textuel de l'entrée de zone de liste sélectionnée avec le contenu de la cellule.

2. Position de la sélection liée : la position, dans la zone de liste, de l'élément sélectionné est synchronisée avec la valeur numérique contenue dans la cellule.

Action | Résultat
--- | ---
Sélectionner un seul élément de liste : | Le contenu est lié : le texte de l'élément est copié dans la cellule liée. La sélection est liée : la position de l'élément sélectionné est copiée dans la cellule liée. Par exemple, si l'élément sélectionné est le troisième, c'est le chiffre 3 qui est copié.
Sélectionner plusieurs éléments de la liste : | L'expression #NV est saisie dans la cellule liée.
Désélectionner tous les éléments de la liste : | Le contenu est lié : Le contenu de la cellule liée est effacé. La sélection est liée : la valeur 0 est saisie dans la cellule liée.
Saisir du texte ou une valeur dans la cellule liée : | Le contenu est lié : recherchez et sélectionnez un élément de liste identique. La sélection est liée : l'élément de liste situé à la position spécifiée (1 correspondant au premier élément) est sélectionné. S'il est introuvable, tous les éléments sont désélectionnés.
Saisir une formule dans la cellule liée : | Recherchez et sélectionnez un élément de liste qui correspond au résultat de la formule et au mode Liaison.
Effacer le contenu de la cellule liée : | Désélectionner tous les éléments de la zone de liste.
Modifier le contenu de la plage source de la liste : | Les éléments de la zone de liste se mettent à jour en fonction des modifications, et la sélection est conservée. Cela peut entraîner la mise à jour de la cellule liée.

### Boîte combinée avec cellule liée

Action | Résultat
--- | ---
Saisissez du texte dans le champ d'édition de la boîte combinée ou sélectionnez une entrée à partir de la liste déroulante : | Le texte est copié dans la cellule lié.
Effacer le contenu du champ d'édition de la boîte combinée : | Le contenu de la cellule liée est effacé.
Saisir du texte ou une valeur dans la cellule liée : | Le texte ou la valeur est copié(e) dans le champ d'édition de la boîte combinée.
Saisir une formule dans la cellule liée : | Le résultat de la formule est copié dans le champ d'édition de la boîte combinée.
Effacer le contenu de la cellule liée : | Le contenu du champ d'édition de la boîte combinée est effacé :
Modifier le contenu de la plage source de la liste : | Les éléments de la liste déroulante se mettent à jour en fonction des modifications. Le champ d'édition de la boîte combinée et la cellule liée ne sont pas modifiés.

## Champ de données

Avec les formulaires de base de données, vous pouvez lier les champs de contrôle aux champs de données.

Plusieurs possibilités s'offrent à vous :

1. Premier cas : le formulaire ne comporte qu'une seule table.

   Dans Champ de données, indiquez le champ de la table de sources de données dont vous souhaitez afficher le contenu.

2. Deuxième cas : l'élément de contrôle appartient à un sous-formulaire créé par une requête SQL.

   Dans Champ de données, indiquez le champ de l'instruction SQL dont vous souhaitez afficher le contenu.

1. Troisième cas : Boîtes combinées

   Pour les zones combinées, saisissez, sous Champ de données, le champ de la table du formulaire actif, dans lequel seront stockées les valeurs saisies ou sélectionnées par l'utilisateur. Les valeurs à afficher dans la liste de la zone combinée sont spécifiées par une instruction SQL saisie sous Contenu de liste.

2. Quatrième cas : Zones de liste

   La table de sources de données ne contient pas les données à afficher, mais une table qui lui est liée est accessible par un champ de données commun.

   Si vous souhaitez qu'une zone de liste affiche les données d'une table liée à la table de sources de données active, indiquez dans Champ de données le champ de la table de sources de données auquel le contenu de la zone de liste renvoie. Vous pouvez aussi spécifier le champ de base de données contrôlant l'affichage des données dans le formulaire. Ce champ de données fournit le lien vers l'autre table si les deux tables peuvent être liées par un champ de données commun. Il s'agit généralement d'un champ de données dans lequel sont stockés des numéros d'identification uniques. Le champ de données dont le contenu est affiché dans le formulaire est indiqué par une instruction SQL dans Contenu de liste.

Les zones de liste acceptent des références qui peuvent réalisées au moyen de tables liées par des instructions SQL (4e cas) ou de listes de valeurs :

Références via les tables liées (instructions SQL)

Si vous souhaitez qu'une zone de liste affiche les données d'une table de base de données qui est liée, par un champ de données commun, à la table sur laquelle le formulaire est basé, vous pouvez spécifier le champ de lien de la table du formulaire dans Champ de données.

Le lien est créé avec une instruction SQL Select qui, si vous avez sélectionné "SQL" ou "SQL Natif", est spécifiée sous Type du contenu de liste dans le champ Contenu de liste. Par exemple, une table "Commandes" est liée au contrôle de formulaire actif et, dans la base de données, une table "Clients" est liée à la table "Commandes". L'instruction SQL peut être la suivante :

SELECT NomClient, NumClient FROM Clients,

où "NomClient" est le champ de données de la table liée "Clients", et "NumClient" le champ de la table "Clients" lié à un champ de la table du formulaire "Commandes" indiqué dans Champ de données.

Références via les listes de valeurs

Vous pouvez utiliser des listes de valeurs dans les zones de liste. Ces listes définissent les valeurs de référence. Autrement dit, le champ de contrôle n'affiche pas directement le contenu d'un champ de base de données dans le formulaire, mais la liste des valeurs associées.

Si vous utilisez des valeurs référentielles provenant d'une liste de valeurs, le contenu du champ de données spécifié sous Champ de données dans le formulaire n'est pas visible. Ce sont les valeurs assignées qui s'affichent à la place. Si vous choisissez "Liste de valeurs" dans le champ Type du contenu de liste de l'onglet Données, et assignez une valeur référentielle à la liste des entrées visibles du formulaire sous Entrées de liste (saisie dans l'onglet Général), les valeurs référentielles sont comparées au contenu du champ de données spécifié. Si une valeur référentielle correspond au contenu d'un champ de données, les entrées de liste associées s'affichent dans le formulaire.

## Champ lié

Si vous supprimez le contenu de la cellule Champ lié dans l'explorateur de propriétés, le premier champ du résultat défini est utilisé pour afficher et échanger les données.

Cette propriété spécifique aux zones de liste détermine quel champ de données d'une table liée est affichée dans le formulaire.

Si une zone de liste du formulaire affiche le contenu d'une table liée à la table de formulaire, vous devez renseigner le champ Type du contenu de liste si l'affichage est déterminé par une commande SQL ou par la table (liée) à laquelle le système accède. Une fois la propriété Champ lié définie, vous pouvez utiliser un index pour spécifier à quels champs de données de la requête ou de la table le champ de la liste est associé.

La propriété Champ lié ne s'applique qu'aux formulaires utilisés pour accéder à plusieurs tables. Si le formulaire est basé sur une seule table, le champ devant s'afficher dans le formulaire est spécifié directement dans Champ de données. Cependant, si vous souhaitez que la zone de liste affiche les données à partir d'une table liée à la table active au moyen d'un champ de données commun, vous devez définir ce champ à l'aide de la propriété Champ lié.

Si vous avez sélectionné "Sql" dans Type du contenu de liste, la commande SQL détermine l'index à spécifier. Exemple : si vous spécifiez une instruction SQL telle que "SELECT Champ1, Champ2 FROM nom_de_table" dans Contenu de liste, référez-vous au tableau suivant :

Champ lié | Lien
--- | ---
-1 | L'index de l'entrée sélectionnée dans la liste est lié au champ spécifié sous Champ de données.
{vide} ou 0 | Le champ de base de données "Champ1" est lié au champ spécifié sous Champ de données.
1 | Le champ de base de données "Champ2" est lié au champ spécifié sous Champ de données.

Si vous avez sélectionné "Table" dans Type du contenu de liste, la structure de la table définit l'index à spécifier. Exemple : si une table de base de données est sélectionnée dans Contenu de liste, référez-vous au tableau suivant :

Champ lié | Lien
--- | ---
-1 | L'index de l'entrée sélectionnée dans la liste est lié au champ spécifié sous Champ de données.
{vide} ou 0 | La colonne 1 de la table est liée au champ spécifié sous Champ de données.
1 | La colonne 2 de la table est liée au champ spécifé sous Champ de données.
2 | La colonne 3 de la table est liée au champ spécifié sous Champ de données.

## Chaîne vide est NULL

Définit comment une entrée de chaîne vide doit être traitée. Si définie sur "Oui", une entrée de chaîne de longueur zéro sera traitée comme une valeur NULL. Si définie sur "Non", n'importe quelle entrée sera traitée comme telle, sans aucune conversion.

Une chaîne vide est une chaîne de longueur zéro (""). Normalement une valeur NULL est différente d'une chaîne vide. En générale, un terme NULL est utilisé pour indiquer une valeur non définie, une valeur inconnue ou "aucune valeur n'a encore été saisie."

Les systèmes de base de données varient et peuvent traiter une valeur NULL différemment. Consultez la documentation de la base de données que vous utilisez.

## Contenu de la cellule liée

Sélectionnez le mode de liaison d'une zone de liste avec une cellule liée dans une feuille de calcul.

1. Contenu lié : Synchronisez le contenu contextuel de l'entrée de zone de liste sélectionnée avec le contenu de la cellule. Sélectionnez "l'entrée sélectionnée".

2. Position de la sélection liée : La position dans la zone de liste de l'élément sélectionné est synchronisée avec la valeur numérique contenue dans la cellule. Sélectionnez "Position de l'entrée sélectionnée".

## Contenu de liste

Dans des formulaires de base de données, indique la source de données du contenu de la liste de l'élément du formulaire. Ce champ peut être utilisé pour définir une liste de valeurs pour des documents non liés à une base de données.

Dans le cas de formulaires de base de données, la source de données détermine les entrées de la zone de liste ou de la zone combinée. En fonction du type sélectionné, vous pouvez choisir entre différentes sources de données dans Contenu de liste, à condition que ces objets existent dans votre base de données. Tous les objets de base de données disponibles correspondant au type sélectionné dans Type du contenu de liste y sont proposés. Si vous avez sélectionné le type "Liste de valeurs", vous pouvez utiliser des références pour les formulaires de base de données. Si l'affichage de l'élément de contrôle est commandé par une instruction SQL, celle-ci est saisie à cet endroit.

Exemples utilisant des instructions SQL :

Dans le cas de zones de listes, une instruction SQL peut avoir la forme suivante :

SELECT champ1, champ2 FROM table,

Où "table" est la table dont les données doivent apparaître dans la liste du champ de contrôle (table de liste). "champ1" est le champ de données qui détermine les entrées qui seront visibles dans le formulaire, c'est-à-dire dont le contenu apparaîtra dans la zone de liste. "champ2" est le champ de la table de liste qui est lié à la table de formulaire (table de valeurs) via le champ entré sous Champ de données lorsque la valeur 1 est sélectionnée dans la zone Champ lié.

Dans le cas de boîtes combinées, une instruction SQL peut avoir la forme suivante :

SELECT DISTINCT champ FROM table,

Ici, "champ" désigne le champ de données de la table de liste "table" dont le contenu est affiché dans la liste de la zone combinée.

Listes de valeurs pour les documents HTML

Pour les formulaires HTML, vous pouvez saisir une liste de valeurs dans Contenu de liste. Sélectionnez l'option "Liste de valeurs" dans Type du contenu de liste. Les valeurs saisies à cet endroit ne sont pas visibles dans le formulaire et servent à assigner des valeurs aux entrées visibles. Les entrées saisies dans Contenu de liste correspondent à la balise HTML <OPTION VALUE=...>.

Lors du transfert des données d'une entrée sélectionnée dans une zone de liste ou dans une boîte combinée, la liste de valeurs affichée dans le formulaire, saisie sous Entrées de liste dans l'onglet Général, ainsi que la liste de valeurs saisie sous Contenu de liste dans l'onglet Données, sont prises en compte : si un texte (non vide) se trouve à la position sélectionnée dans la liste de valeurs (<OPTION VALUE=...>), il est envoyé. Sinon, c'est le texte affiché dans le contrôle (<OPTION>) qui est envoyé.

Si la liste de valeurs doit contenir un espace vide, saisissez la valeur "$$$empty$$$" sous Contenu de liste à la position correspondante (en respectant la casse). LibreOffice interprète cette entrée comme un espace vide et l'assigne à l'entrée de liste correspondante.

Le tableau suivant montre les relations entre HTML, JavaScript et le champ LibreOffice Contenu de liste en prenant pour exemple une zone de liste nommée "ListBox1". Dans cette description, le terme "item" représente une entrée de liste visible dans le formulaire :

Balise HTML | JavaScript | Entrée dans la liste de valeurs du contrôle (contenu de liste) | Données transmises
<OPTION>Item | Impossible | "" | l'entrée de liste visible ("ListBox1=Item")
<OPTION VALUE="Valeur">Item | ListBox1.options[0].value="Valeur" | "Valeur" | La valeur associée à l'entrée de liste ("ListBox1=Valeur")
<OPTION VALUE="">Item | ListBox1.options[0].value="" | "$$$empty$$$" | Une chaîne vide ("ListBox1=")

## Plage de cellules source

Saisissez une plage de cellules contenant des entrées pour une zone de liste ou une boîte combinée sur une feuille de calcul. Si la plage de cellules saisie s'étale sur plusieurs colonnes, seul le contenu de la colonne la plus à gauche sera pris en compte pour définir le contrôle.

## Proposition de filtre

Lors de la conception de votre formulaire, vous pouvez définir la propriété "Proposition de filtre" pour chaque zone de texte de l'onglet Données de la boîte de dialogue Propriétés correspondante. Dans les recherches suivantes en mode Filtre, vous pouvez choisir parmi toutes les informations figurant dans ces champs. Le contenu du champ peut ensuite être sélectionné à l'aide de la fonction Auto-complétion. Notez cependant que cette fonction consomme davantage d'espace mémoire et de temps, surtout lorsqu'elle est utilisée dans de grandes bases de données. Il est donc conseillé de l'employer modérément.

## Type du contenu de liste

Détermine les données devant s'afficher dans les zones de liste et dans les boîtes combinées.

Avec l'option "Liste de valeurs", toutes les entrées saisies dans le champ Entrées de liste de l'onglet Général s'affichent dans le contrôle. Pour les formulaires de base de données, vous pouvez utiliser des valeurs référentielles. Reportez-vous à la rubrique Références via les listes de valeurs.

Si le contenu de l'élément de contrôle est lu à partir d'une base de données, vous pouvez déterminer le type de source de données à l'aide des autres options. Vous pouvez par exemple choisir entre des tables et des requêtes.

## Valeur référentielle (activée)

Vous pouvez assigner une valeur référentielle aux boutons radio et aux cases à cocher. La valeur référentielle est transmise à un serveur lors de l'envoi du formulaire Web. Les formulaires de base de données permettent d'écrire la valeur saisie ici dans la base de données assignée au champ de contrôle.

Valeurs de référence pour les formulaires Web

Les valeurs référentielles sont utiles si vous devez concevoir un formulaire Web et si les informations sur le statut du contrôle doivent être transmises à un serveur. Si l'utilisateur clique sur le contrôle, la valeur référentielle correspondante est envoyée au serveur.

Par exemple, s'il existe deux champs de contrôle pour les options "féminin" et "masculin" et que vous assignez la valeur référentielle 1 au champ "féminin" et la valeur 2 au champ "masculin", la valeur 1 est transmise au serveur si l'utilisateur clique sur le champ "féminin" et la valeur 2 s'il clique sur le champ "masculin".

Valeurs de référence pour les formulaires de base de données

Avec les formulaires de bases de données, vous pouvez également identifier l'état d'un bouton radio ou d'une case à cocher à l'aide d'une valeur de référence et stocker cette valeur de référence dans la base de données. Par exemple, si vous avez un groupement de trois options appelées "en cours", "terminé" et "à revoir" auxquelles vous avez affecté les valeurs de référence "ToDo", "OK" et "AR", ce sont ces dernières qui apparaissent dans la base de données chaque fois que l'on clique sur l'option correspondante.

## Valeur référentielle (désactivée)

Les cases à cocher et les boutons radio des classeurs peuvent être liés aux cellules du document actif. Si le contrôle est activé, la valeur saisie dans la zone Valeur référentielle (activée) est copiée dans la cellule. Si le contrôle est désactivé, la valeur saisie dans la zone Valeur référentielle (désactivée) est copiée dans la cellule.