![양식의 콤보/드롭다운을 사용하여 외래 키 채우기](https://rvso.com/image/1475804/%EC%96%91%EC%8B%9D%EC%9D%98%20%EC%BD%A4%EB%B3%B4%2F%EB%93%9C%EB%A1%AD%EB%8B%A4%EC%9A%B4%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%99%B8%EB%9E%98%20%ED%82%A4%20%EC%B1%84%EC%9A%B0%EA%B8%B0.png)
사용자가 보는 값이 ID가 아니라 외부 테이블의 설명 필드인 콤보 상자/드롭다운을 사용하여 한 테이블에 외래 키 필드를 채우고 싶습니다.
다음 설정을 고려하십시오.
create table people (
id int identity primary key,
name varchar(250),
job_id int
);
create table jobs (
id int identity primary key,
description varchar(250)
);
insert into jobs(description) values 'foo';
insert into jobs(description) values 'bar';
관계 창에서 외래 키 관계를 지정했습니다.
그리고 사용자가 양식을 통해 jobs.description
새 항목을 만들 때 확인하고 싶습니다 .person
하지만 이 작업을 수행하는 방법을 알 수 없습니다. 두 테이블을 조인하는 쿼리를 기반으로 양식을 생성하면 새 데이터를 생성할 수 없으며 를 기반으로 양식을 생성하면 people
옵션 Subform based on existing relation
이 회색으로 표시됩니다.
Access에서는 양식 마법사를 사용하여 이를 쉽게 수행할 수 있습니다.
LibreOffice/OOo Base에서 이를 어떻게 달성할 수 있습니까?
답변1
양식 마법사를 사용하여 이 작업을 수행할 수 없습니다. 연결된 양식 항목은 붉은 청어입니다.
하지만 그것은 가능하다꽤다음과 같이 쉽게.
- 양식 마법사를 사용하여 테이블의 필드만 사용하여 가능한 한 양식을 가져옵니다
people
. - 디자인 모드에서 양식을 편집합니다(*힌트: 아이콘은 완전히 직관적이지 않지만 다음과 같습니다.
)
- 양식에 '목록 상자' 컨트롤을 추가합니다(참고: 콤보 상자가 아니라 Base에서 뭔가 다릅니다). 그러면 다른 모든 작업을 안내하는 마법사가 열립니다.
- 에서
Choose the table from which the data should be used as basis for the list content
을 선택합니다jobs
. description
으로 선택하세요Display field
.Field from the Value Table
선택 아래job_id
및Field from the List Table
선택 아래에 있습니다id
.
그게 다야! 이제 드롭다운 상자가 예상대로 정확하게 작동합니다.
마법사가 마음에 들지 않으면 다음과 같이 목록 상자 컨트롤을 수동으로 편집할 수 있습니다.
- 목록 상자를 추가한 다음 마법사를 닫습니다. 기어인 "컨트롤" 아이콘을 클릭하세요. (이 역시 말이 안 된다.)
- '목록 내용'에는 "SELECT "DESCRIPTION", "ID" FROM "JOBS"라고 되어 있는 정보를 다음과 같이 입력합니다. 사용자에게 표시하려는 필드에 유의하세요.~ 해야 하다먼저 오고 '바인딩된 필드'는 0으로 인덱싱되며 ID 열을 참조해야 합니다.
그게 다야!