Caixas de listagem não seleciona dados escolhidos - Base

Boa tarde pessoal,

Criei um formulário com 2 caixas de listagens (Turno e gas), que puxam valores de uma tabela diferente origem (turnos e tipo_combustao), fiz isso através de uma comando basico de sql na configuração da listagem (select) (SELECT TURNO FROM turnos ORDER BY TURNO ASC).

Funciona!

No entanto, quando entro no formulário para preencher novos dados, ao selecionar qualquer valor na caixa de listagem, o valor sempre vai para o 1º da listagem após clicar em qualquer outro campo do formulário. Para ficar o valor que eu preciso selecionar, é necessário selecionar duas vezes para que o formulário mantenha o valor que quero… Vejam as imagens:

Alguém sabe informar o que acontece? vi em outro BD disponibilizado aqui no ask, e funciona perfeitamente …

Para maiores informações disponibilizo o meu BD aqui.

Muito obrigado

Boa noite,

As caixas de listagem precisam de comandos SQL que retornem duas colunas. A primeira coluna irá para as “entradas da lista”, parte que é visualizada pelo usuário. A segunda é aquela que realmente será armazenada na tabela por trás do formulário; é o “conteúdo da lista”.

Note que, por exemplo, o comando sql retorna duas colunas: (“Cidade” e “IDC”) no BD da outra questão. O usuário escolhe uma cidade e seu IDC (número) é que será armazenado no banco.

Mesmo que no seu caso não exista diferença entre o que será exibido e o que deverá ser armazenado, a caixa de listagem precisa ser alimentada com duas colunas. O comportamento estranho, então, se dá por existir apenas uma.

Para funcionarem, corrija os comandos para:

SELECT "TURNO", "TURNO" FROM "turnos" ORDER BY "TURNO" ASC

SELECT "tipo_combustao", "tipo_combustao" FROM "tipo_combustao" ORDER BY "tipo_combustao" ASC

.

Atte,
Grafeno

Um adendo: A caixa de combinação, por sua vez, pode ser alimentada por um SQL que retorna apenas uma coluna.