Come posso rendere comode le caselle combinate di chiave esterna su un modulo di accesso?

StackOverflow https://stackoverflow.com/questions/153035

  •  03-07-2019
  •  | 
  •  

Domanda

Ho due tavoli:

Employees:
uid (number) | first_name (string) | last_name (string) | ...

Projects:
uid | project_title (string) | point_of_contact_id (FK: Employees.uid) | ...

Vorrei creare un modulo per i progetti con un " Point of Contact " campo della casella combinata (elenco a discesa). I valori visualizzati devono essere " first_name last_name " ma i dati di supporto sono l'UID. Come imposto il modulo per mostrare una cosa all'utente e salvarne un'altra nella tabella?

Starei bene solo con la possibilità di mostrare un campo (solo per esempio "first_name"), dato che posso creare una vista con un campo full_name.

In seguito:

Se c'è un modo per farlo a livello di progettazione della tabella, preferirei che, da allora avrei dovuto solo impostare un'impostazione per colonna UID (e ci sono molte tabelle), anziché un'impostazione per campo UID (e ci sono molti moduli, ognuno con diversi campi UID).

È stato utile?

Soluzione

Per espandere la risposta di Loesje, utilizzare la proprietà Colonna associata insieme a Conteggio colonne e Larghezza colonne quando si visualizzano più campi in modo da poter dire ad Access quale dovrebbe essere scritto nel database. (Esistono altri modi per farlo utilizzando VBA, ma questo dovrebbe funzionare per il tuo caso particolare.)

Nel tuo caso, impostando Source Row su select uid, first_name, last_name da tablename significa che la tua colonna vincolata dovrebbe essere 1, per la prima colonna della tua sorgente di riga (uid). Questo è il valore predefinito, quindi dovresti modificarlo solo se desideri salvare un valore da un altro campo. (Ad esempio, se si desidera salvare last_name dalla sorgente di riga sopra, impostare Colonna vincolata su 3.)

Non dimenticare che quando imposti le larghezze delle altre colonne che stai visualizzando, la proprietà Larghezza della casella combinata dovrebbe essere maggiore o uguale alla somma delle larghezze delle colonne, altrimenti potresti non vedere tutte le colonne.

/ p>

Non esiste un modo per indicare a livello di tabella che un modulo basato su quella tabella deve estrarre determinate colonne o che una determinata colonna è la chiave esterna, ma è possibile copiare una casella combinata in altri moduli e porterà con sé tutte le sue proprietà. Puoi anche copiare la query Origine riga e incollarla in altre caselle combinate se ciò ti aiuta.

Altri suggerimenti

Imposta l'origine della riga del menu a discesa su " seleziona uid, first_name, lastname da tablename 'e imposta la larghezza di colonna su 0. In questo modo la larghezza della prima colonna è impostata su zero, quindi l'utente non la vede. (Puoi fornire la larghezza delle altre colonne separandole con un punto e virgola, ovvero: 0 cm; 4 cm; 4 cm)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top