Preencher chave estrangeira usando combo / dropdown no formulário

2

Gostaria de preencher um campo de chave estrangeira em uma tabela usando uma caixa de combinação / lista suspensa em que os valores que o usuário vê não são os IDs, mas um campo de descrição da tabela externa.

Considere a seguinte configuração:

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';

Eu especifiquei o relacionamento de chave estrangeira na janela de relacionamentos:

Eugostariaqueousuáriovisualizassejobs.descriptionaocriarumnovopersonpormeiodeumformulário.

Masnãoconsigovercomofazerisso.Seeucriarumformuláriocombaseemumaconsultaqueuneasduastabelas,nãoserápossívelcriarnovosdadose,seeucriarumformuláriocombaseempeople,aopçãoSubformbasedonexistingrelationficaráesmaecida:

NoAccess,issoéfácildeconseguircomoassistentedeformulários:

Como posso conseguir isso no LibreOffice / OOo Base?

    
por LondonRob 04.12.2015 / 16:14

1 resposta

3

Isso não pode ser feito usando o assistente de formulário. O material do formulário vinculado é um arenque vermelho.

Mas isso pode ser feito razoavelmente com facilidade, como segue.

  1. Use o assistente de formulário para obter o formulário o máximo que puder com o campos da tabela people apenas.
  2. Edite o formulário no modo de design (* dica: o ícone é completamente não intuitivo, mas é assim: )
  3. Adicioneumcontrolede'listbox'aoseuformulário(nota:nãoéumacaixadecombinação,issoéalgodiferentenoBase).Issoabriráumassistentequeolevaráatodooresto.
  4. EmChoosethetablefromwhichthedatashouldbeusedasbasisforthelistcontent,selecionejobs.
  5. SelecionedescriptioncomoDisplayfield.
  6. EmFieldfromtheValueTableselecionejob_ideemFieldfromtheListTableselecioneid.

Éisso!Acaixasuspensaagorafuncionaráexatamentecomoesperado:

Sevocênãogostadeassistentes,podeeditarmanualmenteocontroledacaixadelistagemdaseguinteforma:

  1. Adicionesuacaixadelistagemefecheoassistente.Cliquenoícone"Control", que é uma engrenagem. (Isso também não faz sentido.)
  2. Insira as informações da seguinte maneira, em que "Listar conteúdo" diz "SELECIONAR" DESCRIÇÃO "," ID "DE" TRABALHOS ". Observe que o campo que você deseja que o usuário veja deve vir em primeiro lugar e que o "campo vinculado" é indexado com zero e deve se referir à coluna ID.

É isso aí!

    
por 04.12.2015 / 16:57