2013-10-16 2 views
5

Ich habe, was ich dachte, wäre einfach in Access zu tun.Wie Verwenden einer Combobox in Access-Formular, um Datensatz mit Fremdschlüssel zu aktualisieren, aber eine Suche dieses Schlüssels anzuzeigen?

Stellen ich die folgenden Tabellen (erzeugt in SQL):

CREATE TABLE Projects (
    ID int IDENTITY(1,1) PRIMARY KEY, 
    RequestStatus int FOREIGN KEY REFERENCES RequestStatus(ID), 
    mName varchar(50) 
); 

CREATE TABLE RequestStatus (
    ID int IDENTITY(1,1) PRIMARY KEY, 
    RequestStatus varchar(50) unique 
); 

ich ein Formular in Access auf dem Projekte-Tabelle erstellen möchten, die ein Dropdown hat Benutzer ermöglicht RequestStatus zu ändern - aber die Anzeige der varchar (50) Werte.

Zum Beispiel, wenn RequestStatus.RequestStatus Werte sind:

  • (1, "one")
  • (2, "zwei")

ich die Drop wollen bis zu zeigen die Optionen "eins" und "zwei", aber tatsächlich, wenn sie ausgewählt sind, aktualisieren Sie meine Projects.RequestStatus auf 1 bzw. 2.

Ich kann sehr leicht drücken Sie die "eins" und "zwei" Werte in der Dropdown-Liste, indem Sie einfach meine Combobox machen:

  • RowSource = SELECT RequestStatus.RequestStatus VON RequestStatus;
  • Control = RequestStatus.RequestStatus

Aber dann, wenn ich den Combo-Box-Wert zu ändern, versucht er, einen neuen Wert in die RequestStatus Tabelle einzufügen - das offensichtlich ein Problem.

Wenn ich die Control jedoch ändern Projects.RequestStatus zu sein, ist es mir nicht auswählen, die „eins“ oder „zwei“ Indikatoren wie der Wert mit der angezeigt wird, ist 1/2 usw.

Wie kann ich das erreichen?

Antwort

8

Versuchen Sie dies für Ihre Kombinationsfeld:

Control Source: Projects.RequestStatus
Row Quelle: SELECT ID, RequestStatus VON RequestStatus
Gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreite: 0 "; 1"

Auf diese Weise hat Ihr Kombinationsfeld zwei Spalten (ID und RequestStatus), aber die erste Spalte ist ausgeblendet, da ihre Breite Null ist.

+0

Genau richtig! –

Verwandte Themen