Microsoft Access comment obtenir un nom de champ à afficher uniquement avec certaines entrées

1

Ma base de données dans Access est répertoriée par classification (par exemple, cinéma, presse (locale), publication (locale), etc.).

Pour la classification de cinéma, je veux une colonne intitulée "le nombre d'écrans dans le cinéma". Cependant, je n'ai pas besoin de cette colonne pour les autres classifications.

Comment créer une colonne qui n'apparaît que pour les cinémas? Je ne veux pas que la colonne soit simplement remplie de N / As pour les classifications hors cinéma.

entrez la description de l'image ici

Wilga
la source

Réponses:

3

Ce que vous demandez, c'est la normalisation de la base de données . Il s'agit d'un processus de conception utilisé par les concepteurs de base de données pour éliminer les données redondantes ou incohérentes d'une base de données. Dans votre cas, le fait d'avoir un champ Nombre d'écrans pour les enregistrements qui n'ont pas d'écrans n'aurait aucun sens, d'où la nécessité d'une normalisation.

Pour résoudre votre problème, vous devez ajouter une deuxième table à votre base de données et y placer le champ. Ensuite, vous liez la table principale et la seconde table avec un champ ID unique. Enfin, vous créez un enregistrement dans la seconde table uniquement si un enregistrement dans la table principale nécessite des détails supplémentaires.

Voici un aperçu de ce processus:

  1. Ajoutez un champ à votre table principale du type Numéro automatique. Nommez-le CinemaID. Laissez Access utiliser ceci comme clé primaire de la table.
  2. Créez une autre table. Peut-être l' appeler Cinema_Detail .
  3. Dans la nouvelle table, ajoutez un champ de type Long. Nommez-le CinemaID (utilisez le même nom que le champ de clé primaire dans la première table). Ne laissez pas Access en faire une clé primaire. Ne dites pas que le champ est Required et que les valeurs de ce champ doivent être uniques (sinon, il serait possible que plusieurs enregistrements de cette table correspondent à un seul enregistrement dans la table principale, ce qui est contraire à votre demande).
  4. Ajoutez un autre champ pour le nombre d'écrans.
  5. Dans Database Relationship Manager, créez une relation un à plusieurs entre les champs CinemaID de vos deux tables.

Maintenant, pour spécifier le nombre d'écrans d'un cinéma, ajoutez un enregistrement à la table Cinema_Detail et indiquez le CinemaID de l'enregistrement correspondant dans la table principale, ainsi que la valeur correspondant au nombre d'écrans.

Plus d'information

Au cas où vous vous demanderiez

Il n'est pas possible de faire ce que vous demandez directement dans le tableau principal. Dans Access, les champs existent dans une table ou n'existent pas. Il n'y a pas de milieu. Access est un moteur de base de données et, en tant que tel, il adhère aux règles de bonne conception de la base de données.

Imitateur Twisty
la source
Est-ce que cela signifie que toutes mes entrées auront un cinemaID même s'il ne s'agit pas d'un cinéma?
Wilga
@wilga Oui. A partir de cette question, est-ce que je déduis correctement que votre table principale contient des données sur les cinémas et d' autres données? Si tel est le cas, vous devez résoudre ce problème, sinon vous aurez de plus en plus de difficultés à utiliser votre base de données. Lisez l'article que j'ai lié pour des informations à ce sujet. (Désolé d'être le porteur de mauvaises nouvelles - j'ai déjà été à votre place et j'ai dû en apprendre davantage sur la conception de bases de données par le biais d'essais par erreur).
Twisty Impersonator
La table principale est la classification des médias, qui inclut, entre autres, les cinémas. Cependant, je souhaite avoir des informations supplémentaires sur le nombre d'écrans uniquement avec les cinémas. Comme les autres classifications de médias n'ont pas d'écrans.
Wilga
@wilga peut-être alors tout ce que vous avez à faire est de mettre en œuvre ma réponse. Comme le note mon dernier paragraphe, il n'y a pas d'autre moyen de le faire.
Twisty Impersonator
Donc, en gros, je termine avec 2 tables séparées. 1) avec tout dedans (à part le nombre d'écrans. 2) avec les écrans de cinéma. Je les ai liées dans la relation mais je ne comprends pas comment ces tables interagissent. Dois-je simplement ouvrir la table des écrans de cinéma pour voir ce détail à chaque fois ou y a-t-il autre chose?
Wilga