Eu tenho um ComboBox que carrega uma lista de países, toda vez que seleciono um item e depois foco em outro objeto do formulário ele zera para 0. Este ComboBox está vinculado a um valor Inteiro na tabela principal (ele armazena o índice, não o sequência do país).
O que diabos estou fazendo de errado?
Responder1
Se bem entendi, você deseja um ComboBox que exiba uma lista de nomes de países e armazene algum tipo de código de país. Você pode usar um ComboBox para exibir e armazenaracampo, mas não para exibir um campo e armazenar outro. Diferentemente do controle ListBox, o ComboBox não possui uma Bound Field
propriedade, sendo necessária a utilização de dois campos. A Bound Field
propriedade determina qual campo é armazenado na tabela de destino.
Você precisa usar um controle ListBox para obter essa funcionalidade. O controle ListBox deve fornecer um assistente. Primeiro selecione a tabela da qual deseja exibir os dados.
Em seguida, selecione o campo que deseja exibir.
Por último, selecione o campo no qual deseja armazenar o valor (lista do lado esquerdo) e o campo do qual deseja obter o valor (lista do lado direito).NOTA: Neste exemplo, estou usando apenas uma tabela. Portanto, tenho as mesmas opções nas listas do lado esquerdo e do lado direito. Normalmente, você extrairia esses dados de outra tabela para serem exibidos e armazenados na tabela atual - geralmente como algum tipo de relacionamento de chave estrangeira.
Depois precisamos fazer com que o ListBox atue como um ComboBox, ou seja, fazer com que o ListBox tenha um menu dropdown. Clique com o botão direito no ListBox e vá para Control
. Defina a DropDown
propriedade como Yes
. Defina LineCount
quantos itens você deseja exibir sem precisar rolar (eu gosto de 5, pessoalmente). Por último, defina Height
algo mais parecido com o que seria um campo de texto.
Referência: http://user.services.openoffice.org/en/forum/viewtopic.php?p=164740#p164740