Pergunte aqui
1

LibreOffice Base: Como utilizar os valores de uma tabela em formulário que escreve noutra tabela?

perguntadas 2018-10-09 18:33:39 +0100

imagem do gravatar de jhj

Olá a todos!

Peço perdão pela minha dúvida iniciante, mas não estou compreendendo com clareza os tutoriais sobre o LibreOffice Base que encontrei pela Internet e estou empacado na seguinte situação: criei duas tabelas, uma contendo todas as UFs (unidades da federação) do Brasil, outra contendo todos os municípios do país. Retirei essas informações de uma planilha presente no site do IBGE. Cada UF e município possui um código específico, criado pelo próprio IBGE. Por exemplo, o código da UF Distrito Federal é 53, enquanto que o do "município" Brasília é 00108. Pelo o que analisei, todo código de UF possui dois dígitos, enquanto que o de município possui cinco dígitos.

Pois bem, após criadas as tabelas (sendo uma "Unidades da Federação" e a outra "Municípios"), cuja função seria auxiliar uma terceira tabela criada para o cadastro de pessoas (vamos chamá-la de "tabela Pessoas"), resolvi criar um formulário para a tabela Pessoas, no qual eu utilizaria uma caixa de combinação (combo box) para listar as UFs disponíveis e outra caixa de combinação que carrega os municípios correspondentes à UF selecionada. Pelo menos, essa era a teoria, mas não consegui aplicar na prática.

Na realidade, não consigo nem a primeira parte, pois sequer consigo efetuar a seleção da UF. Eu criei um campo de UF na tabela Pessoas (vou chamá-lo de tabPessoas_UF), com tamanho de dois dígitos, visando combinar com o código de cada UF. Depois, criei o formulário, uma caixa de combinação, defini a tabela Pessoas como fonte de dados, associei a caixa ao campo tabPessoas_UF, porém a lista de opções é buscada diretamente da tabela Unidades da Federação.

Minha dúvida é: a partir desse momento, ao clicar na caixa de combinação, é carregada a lista de UFs existentes, porém eu gostaria que elas fossem registradas no campo tabPessoas_UF como o código de dois dígitos, pois recebo um erro, ao tentar gravar o registro, dizendo que o tamanho da entrada é maior que o permitido (compreendo, pois limitei o tamanho a apenas dois dígitos, o mesmo do código). Em outras palavras, em um exemplo hipotético, a pessoa clicaria na caixa de combinação, selecionaria a opção "Distrito Federal", mas, na hora de salvar, o campo tabPessoas_UF receberia o valor 53, não os caracteres "Distrito Federal". Como fazer isso? Pelo o que li, tem algo a ver com relações e/ou subformulários; até criei uma relação entre as tabelas Pessoas e Unidades da Federação, mas não resolveu.

Por favor, agradeço a quem puder me ajudar ou recomendar algum material de leitura mais próximo do meu caso concreto.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2018-10-11 00:38:14 +0100

imagem do gravatar de Grafeno

updated 2018-10-11 00:38:46 +0100

Boa noite,

Para a primeira parte você precisa uma caixa de listagem (listbox) ao invés de uma caixa de combinação (combobox). No Libreoffice, é o listbox que tem a capacidade de "exibir" um dado para o usuário, enquanto "salva" na tabela o seu código. Para a segunda parte será necessário usar macro.

Veja a questão abaixo, ela ilustra bem o seu problema:

Atte,

editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-10-09 18:33:39 +0100

Lidas: 70 vezes

Última atualização: Oct 11 '18