web-dev-qa-db-fra.com

créer un formulaire pour ajouter des enregistrements dans plusieurs tables

Je suis nouveau pour accéder (je n'ai que la version 2003) et je deviens fou. Considérez également que je suis un novice avec DB en général, alors maintenant j'en suis au point que je suis très confus ... aidez-moi s'il vous plaît. J'essaie de concevoir une base de données pour cataloguer tous les livres que j'ai. J'ai créé les tables et défini les relations Image of my DB ; J'ai quelques tableaux liés à celui des "Livres" dans la relation plusieurs-à-plusieurs (par exemple, les auteurs: chaque livre peut avoir plusieurs auteurs et chaque auteur peut "avoir" plusieurs livres) et quelques autres dans un simple One-To- Beaucoup (par exemple, type de livre: un livre peut être d'un seul type, mais il peut y avoir plusieurs livres de ce type. Maintenant, je voudrais créer un seul formulaire (avec des sous-formulaires si nécessaire) pour remplir mes tableaux. Je voudrais pour pouvoir ajouter un nouveau livre et sélectionner, par exemple, des auteurs existants ou ajouter à nouveau l'auteur; idem pour les données dans la relation un-à-plusieurs.

Comment puis-je faire ceci?

Je suis vraiment perdu, ai-je besoin de plusieurs formulaires et de les ajouter comme sous-formulaires d'un formulaire principal, ai-je besoin de requêtes ou quoi?

10
rodedo

La conception ci-dessus nécessite quatre sous-formulaires. Chaque sous-formulaire doit être basé sur la table de jonction avec l'ID de livre comme champ enfant et maître de lien et une zone de liste déroulante basée sur la table appropriée pour le deuxième ID de table.

Par exemple, votre premier sous-formulaire est Authors, le tableau sur lequel il est basé est Libri_Autori

Link Master Field: Id
Link Child Field: SchedaLibro

Boîte combo:

Control Source: SchedaAutore
Row Source : SELECT Id, Nome FROM Autori
Bound Column: 1
Column Count : 2
Column Widths : 0, 2

Créez votre formulaire de livre, puis commencez à ajouter des sous-formulaires, les assistants feront la plupart du travail pour vous.

Pour ajouter des enregistrements à la table des auteurs, vous devez définir Limite à la liste sur Oui et exécuter du code sur l'événement Pas dans la liste. J'aime utiliser un petit formulaire instantané pour ajouter des éléments aux tableaux "d'arrière-plan". Cela peut être plus facile avec Access 2010, car vous pouvez définir un ListItemsEditForm


1, la forme du livre, juste avant d'ajouter le sous-formulaire. Notez que Use Control Wizards est sélectionné. C'est la valeur par défaut, donc à moins que vous ne la désélectionniez, ça devrait aller.

Step 1 Using a wizard

Les différentes étapes de l'assistant pour ajouter un sous-formulaire Wizard steps for adding a subform

Sélection des champs de sous-formulaire

Selecting the subform fields

Sélection des champs enfant et maître de lien

Selecting the link child and master fields

Le formulaire montrant le contrôle de sous-formulaire surligné en jaune et les propriétés du contrôle

Subfrom control

2, Ajout du combo

Vous pouvez soit changer le champ ajouté par l'assistant de sous-formulaire en un combo en cliquant avec le bouton droit et en définissant les propriétés vous-même ...

Right-click for change to combo

... ou vous pouvez supprimer le contrôle existant et ajouter un combo à l'aide de l'assistant. La première étape consiste à choisir le type de combo.

Step 1 combo type

La deuxième étape consiste à choisir la table ou la requête

Step 2 choose table or query

La troisième étape consiste à choisir les champs

Step 3 choose fields

La quatrième étape choisit l'ordre de tri et ne s'affiche pas ici, il s'agit de la cinquième étape, qui consiste à définir les largeurs de colonne

Step 4 skipped, step 5 set column widths

La sixième étape consiste à définir la source de contrôle

Step 6 set Control Source

Vous vous retrouverez avec une combobox avec les propriétés illustrées

Subform combo and properties

Forme finale

Final form

18
Fionnuala