2013-10-16 10 views
5

Mam to, co uważałem za łatwe do zrobienia w Accessie.Jak korzystać z combobox w formularzu Access, aby zaktualizować rekord za pomocą klucza obcego, ale wyświetlić odnośnik tego klucza?

Wyobraź Mam następujące tabele (wygenerowane w 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 
); 

Chcę utworzyć formularz w programie Access w tabeli projektów, które ma rozwijaną umożliwiającą użytkownikom zmianę RequestStatus - ale wyświetlania VARCHAR (50) wartości.

Na przykład, jeśli wartości RequestStatus.RequestStatus są:

  • (1, "jeden")
  • (2, "dwa")

Chcę spadek w dół, aby pokazać opcje "jeden" i "dwa", ale w rzeczywistości, gdy są wybrane, aktualizują moje Projects.RequestStatus odpowiednio na 1 lub 2.

mogę bardzo łatwo wcisnąć "jeden" i "dwa" wartości w rozwijanym po prostu, że mój Combobox:

  • RowSource = SELECT RequestStatus.RequestStatus OD RequestStatus;
  • ControlSource = RequestStatus.RequestStatus

Ale wtedy, kiedy należy zmienić wartość pola kombi, próbuje wstawić nową wartość do tabeli RequestStatus - jest to oczywiście problem.

Gdybym jednak zmienić ControlSource być Projects.RequestStatus, nie pozwól mi wybrać za pomocą „jednego” lub „dwa” wskaźników jako wartość, która jest wyświetlana jest 1/2 itd

Jak czy mogę to osiągnąć?

Odpowiedz

8

Spróbuj to dla pola kombi:

sterowania Źródło: Projects.RequestStatus
Źródło Row: SELECT ID, RequestStatus OD RequestStatus
Brudne pieniądze Kolumna: 1
Kolumna Count: 2
szerokości kolumn: 0 "; 1"

W ten sposób twoje pole kombi ma dwie kolumny (ID i RequestStatus), ale pierwsza kolumna jest ukryta, ponieważ jej szerokość wynosi zero.

+0

Precyzyjnie poprawne! –

Powiązane problemy