[Résolu]Cases à cocher et utilisation des données existantes

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
anne-sophie
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 31 oct. 2009 09:45

[Résolu]Cases à cocher et utilisation des données existantes

Message par anne-sophie »

Bonsoir, me revoilà, avec une nouvelle question: je suis (encore et toujours) en train d'importer sous OooBase ma base de données créée avec Lotus. Ma question concerne non pas la création de cases à cocher, mais leur lien avec un champ d'une table existante. J'ai parcouru tout le forum sans trouver la réponse.

J'ai un champ booléen (donc deux possibilités, oui ou non). Je souhaite en afficher le contenu sous forme de cases à cocher. Déjà, il y a deux possibilités:
-Lancer le Navigateur de formulaires. Dans la liste proposée, cliquer dans le champ qui nous intéresse. Puis faire un clic-droit dans le champ en question, mais cette fois dans le formulaire. Sélectionner "remplacer par", choisir "cases à cocher".
-Sélectionner l'outil "cases à cocher" dans la palette d'outils. Dessiner une case à cocher dans le formulaire.
Jusque-là, pas de problème. Reste à relier la case à cocher aux données du champ, et c'est là que j'ai fait des tests sans trouver de solution:

Clic-droit dans le champ, choisir l'outil "contrôle". Là, il y a deux points que je ne comprends pas:
-Dans l'onglet "général", ce que veut dire "séquence d'activation"
-Dans l'onglet "données", ce que veut dire "valeur référentielle: activé-désactivée"
Enfin, plus exactement, je crois comprendre qu'il faut indiquer les valeurs correspondant à la case coché/décochée. Dans ma table, cette valeur correspond à 0 (coché) et rien (décoché), j'ai donc mis "séquence d'activation" sur 1. Malheureusement, cela ne marche pas, et les cases du formulaire restent désespérément vides.
Une observation attentive de ma table me montre qu'il existe trois possibilités: case cochée, case "un peu cochée", et case vide. Cela devrait correspondre, dans l'ordre, aux valeurs 1, 0 et rien, mais en réalité cela correspond aux valeurs ?, rien et 0. Allez comprendre. Je suis bien perplexe.

Merci d'avance pour votre aide (après quoi je pourrai me lancer dans la rédaction de mon grand tutoriel "comment migrer vers Ooo sans devenir fou"!)
Dernière modification par anne-sophie le 05 nov. 2009 12:22, modifié 1 fois.
OpenOffice 3.0 sous Linux
Avatar de l’utilisateur
Clarion14
Membre hOOnoraire
Membre hOOnoraire
Messages : 100
Inscription : 09 oct. 2009 16:53

Re: Cases à cocher et utilisation des données existantes

Message par Clarion14 »

Bonjour Anne-Sophie,

Je ne peux donner pour l'instant que 3 réponses:
- la séquence d'activation correspondant à l'ordre des champs de saisie ou de mise à jour dans un formulaire, il suffit de mettre un chiffre dans la propriété de chaque champs,
- le valeur référentielle sert à copier cette valeur dans une autre cellule,
- pour la case, soit grise, soit cochée, soit vide, dans la propriété général du formulaire, tu as statut triple ( 4ème en partant du bas), oui ou non, oui = triple, non = cochée ou vide. c'est dans la table que tu trouves l'option valeur par défaut.

A plus tard
LbreOffice 3.3.4.1 SRB 1.2.0 & Windows XP SP3
anne-sophie
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 31 oct. 2009 09:45

Re: Cases à cocher et utilisation des données existantes

Message par anne-sophie »

Bonjour Clarion, et merci de cette réponse!
Bon, je viens de regarder tout ça:
-Donc, j'ai 40 champs, dont chacun aura son propre numéro, dans la case "valeur référentielle", si j'ai bien compris. En revanche je ne comprends pas bien à quoi ça sert (à part naviguer dans le formulaire avec la touche Tab)
-Pour le statut triple: je l'avais bien repéré celui-là, et mis sur "non". Mais cela ne résout pas mon problème...
En revanche, je n'ai pas compris le sens de cette phrase:
- la valeur référentielle sert à copier cette valeur dans une autre cellule,
Voilà, donc mon problème reste le suivant: faire correspondre la valeur 0 de ma table à la valeur "case cochée" du formulaire
(évidemment, une solution simple serait de remplacer tous les 0 par des 1 dans la table: à l'occasion, je suis preneur d'indications sur la façon d'automatiser la chose...)
OpenOffice 3.0 sous Linux
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: Cases à cocher et utilisation des données existantes

Message par Pierre-Yves Samyn »

Bonjour
anne-sophie a écrit :Voilà, donc mon problème reste le suivant: faire correspondre la valeur 0 de ma table à la valeur "case cochée" du formulaire
Prenons dans l'ordre :

Un champ booléen (au niveau de la table donc) sera :
  • non renseigné
  • vrai
  • faux
En programmation informatique un booléen :
  • Faux = 0
  • Vrai = 1
  • NR = EMPTY
Un contrôle case à cocher pourra refléter ces 3 états si on valide la propriété Statut triple.

La valeur stockée sera toujours :
  • case non cochée : 0
  • case cochée : 1
  • NR = vide

Dans ton cas (si j'ai bien compris), tu souhaites associer la valeur zéro à l'état coché.

Comme indiqué ci-dessus, ceci est contraire au principe et à l'ergonomie habituels...

Je te conseille dans ce cas d'utiliser à la place des boutons radio qui seront intuitifs pour un béotien dans la mesure où ce qui apparaît est le libellé que tu choisis : Oui / Non par exemple, et n'induiront pas en erreur des utilisateurs plus avertis (qui s'attendent à enregistrer 0 pour faux/décoché).

Par ailleurs, les boutons radios peuvent être créés très simplement via leur assistant comme l'explique ce tutoriel (et notamment le §3.3).

Il te sera possible d'indiquer la valeur que tu veux pour chaque choix.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
anne-sophie
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 31 oct. 2009 09:45

Re: Cases à cocher et utilisation des données existantes

Message par anne-sophie »

Bonjour Pierre-Yves,
Je ne savais pas que les champs booléens avaient trois valeurs possibles...quant aux boutons radio, ils ne correspondent pas à ce que je veux faire, exemple: je dois envoyer des documentations A, B ou C. Je coche simplement la ou les cases correspondantes.
La solution serait de remplacer toutes les valeurs 0 par des 1. Est-ce que vous savez comment automatiser cela?
A bientôt, cordialement
OpenOffice 3.0 sous Linux
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: Cases à cocher et utilisation des données existantes

Message par Pierre-Yves Samyn »

anne-sophie a écrit :quant aux boutons radio, ils ne correspondent pas à ce que je veux faire, exemple: je dois envoyer des documentations A, B ou C. Je coche simplement la ou les cases correspondantes.
Une illustration supplémentaire que joindre un exemple concret (fichier) de ce que l'on veut faire... permet à tous de gagner du temps en évitant de répondre à côté...
anne-sophie a écrit :La solution serait de remplacer toutes les valeurs 0 par des 1. Est-ce que vous savez comment automatiser cela?
C'est possible via une requête. Voir par exemple ce fil http://user.services.openoffice.org/fr/ ... 24&start=0
anne-sophie
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 31 oct. 2009 09:45

Re: Cases à cocher et utilisation des données existantes

Message par anne-sophie »

Je vous enverrai un fichier dès que j'aurai une minute. En attendant, récapitulons ce que j'ai lu sur l'autre sujet:

true=1
false=0
undefined=null.

Le problème du monsieur, est qu'il voudrait remplacer ses valeurs undefined par des false.
Le mien, c'est que je dois remplacer les false par des true.

Ce qui marche pour lui, c'est ceci:

Code : Tout sélectionner

update "table" set "case"=false where ifnull("case",0) <>1
Pour adapter l'exemple précédent à mon cas, je devrais donc remplacer:
false==>true
null==>0
0==>1
1==null

Ce qui nous donne:

Code : Tout sélectionner

update "table" set "case"=true where if0("case",1) <>null
Eh bien, j'obtiens ceci:

Code : Tout sélectionner

2: Access is denied: IF0 in statement [update "table" set "case"=true where if0 (]
Je me gratte la tête...(bon, cherchons vite comment vous envoyer ce satané fichier...)
OpenOffice 3.0 sous Linux
anne-sophie
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 31 oct. 2009 09:45

Re: Cases à cocher et utilisation des données existantes

Message par anne-sophie »

Ca y est, j'ai trouvé!

UPDATE "table" SET "case" = 1 WHERE "case" = 0

OUFFFF....Merci infiniment!!!
(ne reste plus qu'à reproduire la commande sur les 8 autres champs...)
OpenOffice 3.0 sous Linux