[Access] Renseigner le sexe de la personne

Renseigner le sexe de la personne [Access] - SQL/NoSQL - Programmation

Marsh Posté le 21-01-2008 à 12:17:19    

Bonjour,
 
Quel type de champ utiliser pour le renseignement du sexe de la personne ?
Le plus utile par la suite.
 
Merci par avance


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 12:17:19   

Reply

Marsh Posté le 21-01-2008 à 12:26:17    

INTEGER ?


Message édité par kadreg le 21-01-2008 à 12:26:28
Reply

Marsh Posté le 21-01-2008 à 12:43:49    

booléen me semble amplement suffisant :o
 
à moins que tu ne veuilles gérer aussi les transexuels...

Reply

Marsh Posté le 21-01-2008 à 14:33:27    

En booléen, je peux mettre F ou H ?
Comment dois je procéder ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 14:42:53    

Tu peux mettre true ou false... Donc suffit de mapper gonzesse sur true, et mec sur false

Reply

Marsh Posté le 21-01-2008 à 14:47:32    

Comment fait-on pour attribuer un mot à vrai et à faux ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 14:49:56    

je crois qu'il y a du boulot là... :sweat:

Reply

Marsh Posté le 21-01-2008 à 14:53:38    

Ouaip :( Sinon un entier, avec 0 = mec, 1 = nana. Comme ça on peut rajouter des types de sexe (inconnu, shemale, etc.), et ça peut facilement se mapper sur un groupe d'options ou sur une liste de sélection

Reply

Marsh Posté le 21-01-2008 à 14:55:43    

ou alors tu mets un varchar(50) et dedans tu peux écrire :
 
"féminin"
"masculin"
"indéterminé"
"indéterminable"
"autre"
"n'habite plus à cette adresse"
"pas trop souvent"
"de bonne taille"
"ceci ne vous regarde pas"
etc.
 
:spamafote:

Reply

Marsh Posté le 21-01-2008 à 14:56:21    

oui voilà je vais faire comme ca, car il y a effectivement des inconnus.
Merci


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 14:56:21   

Reply

Marsh Posté le 21-01-2008 à 14:58:06    

inconnu en tant normal, c'est la valeur "null" (et non le texte "null" )...

Reply

Marsh Posté le 21-01-2008 à 15:06:52    

mon problème dans ce cas, c'est que je travail sur une base déjà présente, il y a déjà des personnes de sexe inconnu.
Et avec une requête de mise à jour, je ne peux pas attribuer null à quelqu'un d'inconnu, ca me met faux. Or pour les hommes je met vrai et pour les femmes je met faux


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 15:07:48    

si, avec une requête, tu peux sans problème mettre NULL dans un type booléen...

Reply

Marsh Posté le 21-01-2008 à 15:10:54    

Ah !
ma requête n'est pas bonne alors :

Code :
  1. update  accueil_contact
  2. set sexe1= null
  3. where sexe="inconnu";


 
j'ai fait pareil pour homme et femme et ca marche mais là ca me met faux, comme les femmes


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 15:27:23    

(je corrige ce que j'ai dis)
 
tu peux mettre NULL à un champ booléen SAUF avec Access, qui ne sait pas rendre null un champ de ce type :heink:
 
je viens de vérifier, et effectivement pour lui c'est pas nullable comme champ, c'est 0 ou 1, et pas autrechose
 
donc un entier me semble une bonne solution alternative...
 
utiliser un autre SGBD me semble une alternative encore meilleure :D


Message édité par MagicBuzz le 21-01-2008 à 15:31:19
Reply

Marsh Posté le 21-01-2008 à 15:30:44    

c'est ce que j'ai remarqué oui.
Donc du coup j'ai 0 pour inconnu, 1 pour homme et 2 pour femme.
 
Merci


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 15:31:57    

Avec SQL Server en tout cas à ça marche bien :

Code :
  1. CREATE TABLE saiske
  2. (
  3.  id numeric PRIMARY KEY NOT NULL,
  4.  nom varchar(20) NOT NULL,
  5.  sexe bit NULL
  6. );
  7. go
  8.  
  9. INSERT INTO saiske (id, nom, sexe) VALUES (1, 'MagicBuzz', 1);
  10. INSERT INTO saiske (id, nom, sexe) VALUES (2, 'MissBuzz', 0);
  11. INSERT INTO saiske (id, nom, sexe) VALUES (3, 'Harko', NULL);
  12.  
  13. SELECT * FROM saiske;



 
(1 ligne(s) affectée(s))
 
(1 ligne(s) affectée(s))
 
(1 ligne(s) affectée(s))
id                                      nom                  sexe
--------------------------------------- -------------------- -----
1                                       MagicBuzz            1
2                                       MissBuzz             0
3                                       Harko                NULL
 
(3 ligne(s) affectée(s))

Reply

Marsh Posté le 21-01-2008 à 15:35:49    

PS : Au risque d'être un peu lourd...
 
Vu que de toute façon ça marche pô, autant y aller franchement...
 
Moi j'utiliserais plutôt un char(1) pour stocker du coup :
 
"M"/"F" et " " pour inconnu. l'intérêt c'est que ça parle tout de suite quand t'as la table sous les yeux. parceque là, au premier coup d'oeil on sait pas quel chiffre correspond à quoi.

Reply

Marsh Posté le 21-01-2008 à 15:46:34    

Bon j'ai fait comme tu as dit finalement.
 
Après dans le formulaire de saisie, si je veux mettre une case à cocher pour renseigner ce champ, c'est possible de mettre 3 cases à cocher pour Homme, Femme et inconnu ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 16:00:10    

3 solutions :
- Une case à cocher : non coché = "F", coché = "M", moitié-coché = " ", si Access supporte une case à cocher à 3 états
- Trois radio boutons : F, M et vide (l'avantage des boutons radio, c'est qu'on ne peut pas avoir plusieurs valeurs en même temps)
- Liste déroulante avec 3 options
 
Eventuellement, une 4° solution, une case de texte libre, mais t'es pas à l'abrit qu'une personne saisisse "H" par exemple

Reply

Marsh Posté le 21-01-2008 à 16:11:29    

MagicBuzz a écrit :

booléen me semble amplement suffisant :o
 
à moins que tu ne veuilles gérer aussi les transexuels...


 
 :lol: Perso j'utilise le type ENUM avec '0','1' ou 'F','M'.... 1 Pour le mec et 0 pour la nana... c'est une astuce mnémotechnique  :D  
 
 

Spoiler :

Astuce... très imagée


 
Par contre, je sais plus si un équivalent d'ENUM existe en Access  :o


Message édité par Pascal_B le 21-01-2008 à 16:16:11
Reply

Marsh Posté le 21-01-2008 à 16:27:23    

Oui y'a un équivalent : on peut spécifier une liste de valeur dans Access, mais ce n'est pas vraiment le même comportement.
C'est plutôt une contrainte sur le champ qu'un type à part.

Reply

Marsh Posté le 21-01-2008 à 16:41:16    

ok, j'vais utiliser les radios boutons dans ce cas là.
les radios boutons, via l'assistant me propose seulement de mettre des valeurs numériques, or dans ma table c'est char(1).
 
je chanque en numérique du coup ?
Ou il y a une autre solution ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 16:43:58    

honnêtement, je trouve la liste déroulante bien plus pratique, et ça prend moins de place à l'écran

Reply

Marsh Posté le 21-01-2008 à 16:47:06    

La place sur l'écran ne sera pas un problème, surtout, il faut que lors de la saisie, ca soit le plus rapide, si possible tout au clavier ...


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 21-01-2008 à 16:48:51    

4rocky4 a écrit :

La place sur l'écran ne sera pas un problème, surtout, il faut que lors de la saisie, ca soit le plus rapide, si possible tout au clavier ...


ça tombe bien :
TAB pour avoir le focus sur le champ
Et "M", "F", ou "I" au clavier va directement sélectionner la valeur qui commence par cette lettre. On ne peut pas faire plus rapide :)

Reply

Marsh Posté le 21-01-2008 à 17:03:39    

ok bah parfait c'est bon :)


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 22-01-2008 à 09:10:10    

4rocky4 a écrit :

La place sur l'écran ne sera pas un problème, surtout, il faut que lors de la saisie, ca soit le plus rapide, si possible tout au clavier ...


En tous cas, même si t'as beaucoup de chemin à faire, tu te poses déjà les bonnes questions :jap:

Reply

Marsh Posté le 22-01-2008 à 09:23:39    

En effet access et les bases de données, c'est pas mon truc :s
 
J'ai une autre question toujours à propos du formulaire mais pas sur le sexe de la personne, j'ouvre un autre sujet ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 22-01-2008 à 09:25:14    

Comme tu veux, tu peux rester dans celui-là

Reply

Marsh Posté le 22-01-2008 à 09:34:51    

je reste là alors.
 
Donc enfaite je fais un formulaire de saisie de contact.
j'ai donc maintenant toutes les informations que l'on me demande dedans, mais il faudrait que je traite les demande aussi dans ce formulaire.
 
un contact peut effectuer une ou plusieurs demande. (3 au maximum)
une demande peut être effectuer par aucun ou plusieurs contacts.
(un contact ne peut pas faire 2 fois la meme demande)
 
Dans ma base, j'ai donc fait une cim avec CONTACT, EFFECTUER et DEMANDE.
 
Dans le formulaire de saisie du contact, je voudrais que l'on puisse choisir le nombre de demandes que l'on a puis les entrer.  
 
Comment dois-je procéder ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 22-01-2008 à 14:49:34    

:??:  
 
ne serait-il pas possible de mettre un bouton "demandé" puis de selectionner la demande que l'on désire grâce à une liste déroulante et que le code renvoye le numéro de la demande dans la table effectué ?


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le 23-01-2008 à 08:49:38    

:??:


---------------
- Un con qui marche ira plus loin qu'un intellectuel assis -
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed