1

C'est un peu embarrassant mais ça fait longtemps.Interface utilisateur pour base de données relationnelle: caractéristique de base

Lorsque vous travaillez avec des bases de données relationnelles et que vous liez des tables séparées par des clés primaires: étrangères, dans 1-∞, de telle sorte que, dans une table particulière, la relation étrangère renvoie un entier ... cette relation est-elle intelligible pour les utilisateurs?

Par exemple:

Vous avez une entreprise Table

  • CID
  • CompanyName
  • CompanyLocation
  • CompanyBusinessType

etc (pas les noms de colonnes réelles)

et un employé tableau

  • EID
  • prenom
  • surName
  • date de naissance
  • email
  • entreprise

L'employé la société est associé à CID. Mais un utilisateur qui mettrait des informations sur un employé devrait connaître le code d'identification de l'entreprise en raison de la nature de la relation. Vous pouvez lancer une requête pour renvoyer 'CompanyName' avec leurs 'CID' associés qui peuvent ensuite être recherchés, mais ce chiffre n'est pas une solution idéale. Je ne peux pas me souvenir de la théorie de la façon dont on aborde cela, même si je suis certain que je l'ai déjà fait. Je dois l'implémenter dans Microsoft Access 2010 et Microsoft SSMS (bases de données séparées fwiw); mais l'exécution devrait être relativement simple dès que je me rappelle comment c'est fait!

+0

Utilisez-vous un formulaire Microsoft Access? – Fionnuala

+0

Bien sûr. Je porterai le db à Sharepoint mais je ne crois pas qu'il devrait y avoir n'importe quel problème reportant des formes d'accès (contrairement à une migration semblable à SQL Server) – user137263

+1

Je ne suis pas exactement sûr, mais je pense que Sharepoint est l'excuse pour rechercher des champs dans les tableaux. En général, les champs de recherche dans les tables sont empoisonnés http://msdn.microsoft.com/en-us/library/ff402351(office.14).aspx – Fionnuala

Répondre

3

Créer une zone de liste déroulante avec 2 colonnes. Une colonne comme nom de l'entreprise et l'autre comme ID de l'entreprise. Vous pouvez définir la largeur de l'ID de la société sur 0 si vous ne souhaitez pas que l'utilisateur la voit.

Cela peut être fait avec la feuille de propriétés sur MS-Access Forms

Définir la ligne Source de la zone de liste déroulante: SELECT CompanyName, CompanyID FROM Company;

Régler le contrôle de code source de la zone de liste déroulante: Employee.CompanyID

Assurez-vous également que le type de source de ligne est défini sur Table/Query

+0

Ok - c'est génial; juste un problème. Si la table à partir de laquelle les entreprises sont sélectionnées est déjà en concurrence, il n'y a pas de problème. Mais, selon toute vraisemblance, l'utilisateur rencontrera une nouvelle société un jour. En l'état, il est possible d'écraser une société existante dans la table d'entreprise, mais comment diable peut-il être qu'une autre société soit ajoutée à la table de l'entreprise? L'utilisateur devrait-il spécifiquement mettre à jour la table de l'entreprise avant de tenter d'ajouter un employé à l'entreprise sans-papiers? – user137263

+0

Quelle est la relation entre l'entreprise et l'employé? – talbright

+0

La Source de contrôle serait techniquement 'Employee.CompanyID' et non' Company.CompanyID', donc elle mettra seulement à jour l'ID de compagnie dans la table des employés. – talbright

0

Si vous avez besoin d'une relation plusieurs à plusieurs (de nombreux employés appartiennent à de nombreuses entreprises), alors vous aurez besoin d'une autre table CompanyEmployees, quelque chose comme ceci: -

Many to many relationship example

Si un employé appartient à une seule entreprise alors cette structure fera l'affaire: -

simple relationship

Dans les deux cas, vous devez afficher l'utilisateur avec une certaine forme de liste déroulante lors de l'ajout/éditer un utilisateur pour associer les utilisateurs à une ou plusieurs entreprises.

+0

Yup; Connaissez (et souvenez-vous) la méthodologie de la table intermédiaire, merci! La question concerne l'association d'identifiants avec des colonnes lisibles par l'utilisateur. Belle graphique btw! – user137263

+0

Il "Dans les deux cas, vous aurez besoin d'afficher l'utilisateur avec une forme de liste déroulante lors de l'ajout/modification d'un utilisateur pour associer les utilisateurs à une ou plusieurs entreprises." peu que j'ai des problèmes avec! – user137263

Questions connexes