Como posso adicionar um campo a um formulário do MS Access 2002 relacionado a outra tabela?

1

Eu tenho um formulário MS Access 2002 que basicamente fornece caixas de texto para manipular registros em uma tabela chamada Materials . Eu também tenho outra tabela chamada MaterialCosting , que tem uma coluna MaterialID , que a vincula à tabela Materials , que também tem uma coluna MaterialID . O que estou tentando fazer é adicionar uma caixa de texto a este formulário que lê e grava em um campo de MaterialCosting named outerCarton .

Aqui estão minhas tentativas fracassadas:

  1. Clique com o botão direito do mouse no formulário, escolha propriedades e, em data- > Origem do registro , insira uma consulta SQL que junte as duas tabelas ( SELECT * FROM Materials AS M INNER JOIN MaterialCosting AS C ON C.MaterialID = M.MaterialID ). Em seguida, basta colocar o nome da coluna obrigatória ( outerCarton ) na fonte de controle da caixa de texto.
  2. Na fonte de controle da caixa de texto, coloque DLookup("[outerCarton]", "[MaterialCosting]", "MaterialCosting.MaterialID = Materials.MaterialID")

Ambos tiveram o mesmo resultado: a caixa de texto acabaria com #Name? e não faria nada.

Como posso fazer isso funcionar?

UPDATE

As propriedades do formulário Aspropriedadesdocontrole

    
por Shawn 10.02.2012 / 05:11

1 resposta

1

Consegui recriar o #Name? que você está vendo. Parece que é apenas um problema da instrução SQL em como você chamou os dados.

Para corrigir, tive que fazer o seguinte:

  1. Para o FORM Record Source, coloque este SQL; %código%
  2. Agora, você deve poder selecionar SELECT Materials.*, MaterialCosting.* FROM Materials INNER JOIN MaterialCosting ON Materials.MaterialID = MaterialCosting.MaterialID; na lista suspensa de Origem do registro do campo de texto.
  3. Mude para a vista de formulário e veja se você pode selecionar registros e alterar o valor.

Deixe-me saber como isso funciona.

    
por 15.02.2012 / 15:26