
사용자가 보는 값이 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 열을 참조해야 합니다.
그게 다야!