Como faço para fazer caixas de chave estrangeira de combinação user-friendly em um formulário do Access?

StackOverflow https://stackoverflow.com/questions/153035

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho duas tabelas:

Employees:
uid (number) | first_name (string) | last_name (string) | ...

Projects:
uid | project_title (string) | point_of_contact_id (FK: Employees.uid) | ...

Eu gostaria de criar um formulário para projetos com um campo "Ponto de Contato" caixa de combinação (suspenso). Os valores de indicação deve ser "prenome sobrenome", mas os dados de apoio é o UID. Como faço para configurar o formulário para mostrar uma coisa para o usuário e salvar outra coisa para a mesa?

eu estaria bem com apenas ser capaz de mostrar um campo (apenas "first_name", por exemplo), desde que eu posso criar uma exibição com um campo full_name.

Depois:

Se há uma maneira de fazer isso no nível de design da tabela, eu preferiria que, desde então, eu só teria que definir uma configuração por coluna UID (e há muitos tabelas), ao invés de uma configuração por campo UID (e há muitos formas, cada uma com vários campos UID).

Foi útil?

Solução

Para expandir a resposta de Loesje, você usa a propriedade coluna vinculada juntamente com Contagem de coluna e largura das colunas quando você está exibindo vários campos para que você pode dizer Acesso qual deve ser escrito para o banco de dados. (Há outras maneiras de fazer isso usando o VBA, mas isso deve funcionar para o seu caso particular.)

No seu caso, a configuração Origem da linha de meio select uid, first_name, last_name from tablename que a sua coluna vinculada deve ser 1, para a primeira coluna na sua Fonte Row (uid). Este é o valor padrão, então você só tem que mudá-lo se você quiser salvar um valor de um campo diferente. (Por exemplo, se você queria salvar last_name da origem da linha acima, você deve definir coluna vinculada a 3).

Não se esqueça que quando você definir as larguras das outras colunas que você está exibindo, Largura propriedade da caixa de combinação deve ser maior ou igual à soma das larguras de coluna, caso contrário você não pode ver todas as colunas.

Não há uma forma de indicar no nível de tabela que um formulário com base em que as necessidades de mesa para puxar colunas específicas, ou que uma determinada coluna é a chave estrangeira, mas você pode copiar uma caixa de combinação com outras formas e que vai levar todas as suas propriedades com ele. Você também pode copiar a consulta Row Source e colá-lo em outras caixas de combinação se isso ajuda você.

Outras dicas

Defina a OrigemDaLinha do dropdownbox para "seleccionar uid, first_name, sobrenome de tablename' e definir o columnwidth a 0. Desta forma, a largura da primeira coluna está definido para zero, de modo que o usuário não vê-lo. ( você pode fornecer a largura das outras colunas separando-as com um ponto e vírgula, ou seja: 0 centímetros; quatro centímetros; 4 centímetros)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top