Ajouter des éléments à la liste déroulante en mode édition Openoffice Base

0

J'essaye d'ajouter quelques options à une liste déroulante dans la base openoffice. La liste déroulante n'aura jamais que deux options qui peuvent être sélectionnées, il est donc essentiel de disposer d'un tableau pour spécifier les éléments de la liste. Comment ajouter les options à la liste déroulante en mode édition? Je sais que dans Visual Studio, je peux y parvenir simplement en créant un contrôle combobox et en ouvrant les propriétés, en passant à la propriété "list content" et en ajoutant du texte dans chaque élément, séparé par un saut de ligne. Comment puis-je faire cela dans la base openoffice? Après avoir parcouru Internet, je ne trouve la réponse nulle part.

Aiko Wolf
la source
Quel moteur utilisez-vous? Par exemple, le HSQLDB 1.8 par défaut.
Jim K

Réponses:

0

Modifiez les propriétés d'une liste déroulante. Dans l'onglet Données pour Type of list contents, spécifiez SQL [Native]. Pour List content, spécifiez la requête suivante:

SELECT 'No' FROM DUAL UNION SELECT 'Yes' FROM DUAL

C'est si le moteur est Oracle. Pour MySQL, seul ce qui est nécessaire:

SELECT 'Yes' UNION SELECT 'No';

Pour le moteur HSQLDB intégré, la version 1.8 nécessite la création d'un tableau spécial. [1] Créez une table appelée MY_DUMMYavec une seule colonne et une seule ligne. Cela se comportera comme la table DUAL d'Oracle . Puis spécifiez la requête comme ceci:

SELECT 'No' FROM MY_DUMMY UNION SELECT 'Yes' FROM MY_DUMMY

[1] Dans les versions plus récentes de HSQLDB, il est possible d'utiliser (VALUES (0)) comme table factice, mais LO utilise l'ancienne version par défaut.

[2] UNION combine deux instructions SELECT.

EDIT :

Voici des instructions pas à pas pour utiliser Apache OpenOffice 4.1.2. Toutes les tables et tous les champs sont en majuscules pour faciliter le SQL.

  1. Dans OpenOffice, accédez à File -> New -> Database.
  2. Radio Create a new database. [3] Suivant.
  3. No, do not register the database.
  4. Finish. Enregistrez le fichier quelque part.
  5. Create Table in Design View.
  6. Nom du champ: ID. Type de champ: Integer [ INTEGER ].
  7. Cliquez avec le bouton droit à gauche de IDet spécifiez Primary key.
  8. Enregistrez sous MY_DUMMYet fermez la table.
  9. Create Table in Design View.
  10. Encore une fois, créez un IDchamp en tant que clé primaire.
  11. Créez également un champ appelé VALUEtype Text [ VARCHAR ].
  12. Enregistrer sous MY_TABLE1et fermer.
  13. Double-cliquez sur la table MY_DUMMYet ajoutez un enregistrement avec une valeur 0.
  14. Appuyez sur Entrée pour sauvegarder l’enregistrement, puis fermez la table.
  15. Double-cliquez sur la table MY_TABLE1et ajoutez deux enregistrements avec IDde 0et 1.
  16. Définissez le VALUEchamp sur Nopour les deux enregistrements et fermez la table.
  17. Dans les Formsenvirons,Use Wizard to Create Form...
  18. Tables or queries: Table: MY_TABLE1.
  19. Cliquez >>pour vous déplacer IDet VALUEvers le côté droit.
  20. Appuyez sur Finish, puis fermez le formulaire.
  21. Cliquez avec le bouton droit sur le MY_TABLE1formulaire et choisissez Edit.
  22. Avec l'outil Zone de liste déroulante, faites glisser un grand carré pour créer la zone de liste déroulante.
  23. Appuyez sur Cancelpour fermer l'assistant.
  24. Cliquez avec le bouton droit sur la liste déroulante et choisissez Control.
  25. Dans l' Dataonglet, pour Data field, spécifiez VALUE.
  26. Pour Type of list contents, spécifiez Sql [Native].
  27. Pour List content, spécifiez SELECT 'No' FROM MY_DUMMY UNION SELECT 'Yes' FROM MY_DUMMY.
  28. Enregistrez et fermez le formulaire.
  29. Double-cliquez pour ouvrir le formulaire.
  30. Dans la liste déroulante, cliquez sur Yes.
  31. En haut de la liste déroulante, cliquez à droite de Yespour y déplacer le curseur.
  32. Appuyez sur Enterpour accepter la valeur de la liste déroulante.

Maintenant, vous devriez voir la valeur dans la table changer en Yes.

[3] Cette option utilise une base de données intégrée, ce qui n'est pas recommandé pour les environnements de production, mais uniquement pour les tests et le développement. Le moteur est HSQLDB 1.8.

Jim K
la source
Merci d'avoir répondu. Je vais essayer ça demain. Mais qu'est-ce que "union" et "double"? Je suis nouveau sur Open Office et je n'ai pas travaillé avec SQL depuis longtemps, donc je ne comprends pas tout à fait
Aiko Wolf
Pour voir ce qu’ils font, essayez à l’invite SQL ou dans LO Base, allez à Tools -> SQL. J'ai également ajouté des liens ci-dessus expliquant ces termes.
Jim K
Ceci ne fonctionne pas. seule la méthode HSQLDB ne génère pas d'erreur, mais n'ajoute rien à la liste déroulante. Pouvez-vous s'il vous plaît expliquer plus loin? Est-ce important ce que j'appelle le nom de colonne ou le type de données?
Aiko Wolf
Veuillez expliquer (VALEURS (0)). Le message que vous avez lié n'explique rien à ce sujet.
Aiko Wolf
J'ai ajouté des instructions étape par étape. Voyez si vous pouvez les amener à travailler. Si non, laissez-moi savoir s'il y a une étape particulière qui n'est pas claire.
Jim K