Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Combo box para iniciantes


nsouza

Pergunta

Colegas,

assim com muitos estou começando no delphi, minha duvida com certeza será banal para você's experientes.

To fazendo um sitema que tem um TCombobox onde digitarei os estados (UF) como faço para que este compontente

guarde os valores na tabela, não encontrei a propriedade DataField para associar esses valores

Obrigado

NSouza

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
To fazendo um sitema que tem um TCombobox onde digitarei os estados (UF) como faço para que este compontente

guarde os valores na tabela, não encontrei a propriedade DataField para associar esses valores

voce pode usar o componente DBComboBox que tem acesso ao banco de dados diretamente

mas se quiser mesmo usar o Combobox voce deve fazer referencia ao campo da tabela

exemplo

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
   Query1.Active := true;
   Query1.Edit;
   Query1TIPO.Value := ComboBox1.Items.Strings[ComboBox1.itemindex];
   Query1.Post;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
To fazendo um sitema que tem um TCombobox onde digitarei os estados (UF) como faço para que este compontente

guarde os valores na tabela, não encontrei a propriedade DataField para associar esses valores

voce pode usar o componente DBComboBox que tem acesso ao banco de dados diretamente

mas se quiser mesmo usar o Combobox voce deve fazer referencia ao campo da tabela

exemplo

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
   Query1.Active := true;
   Query1.Edit;
   Query1TIPO.Value := ComboBox1.Items.Strings[ComboBox1.itemindex];
   Query1.Post;
end;

abraço

entendi um pouco, o campo da minha tabela se chama UF a tabela se chama Funcionario,

como ficaria este codigo usando o campo no envento click do botão?

Este Query1 é algum componente que eu tenho que colocar?

Por curiosidade talvez seja mais facil para mim, se eu usar um DBComboBox eu consigo digitar manualmente os Estados do país ou tenho que

criar uma tabela para ele buscar os dados? Como é algo que não alterarei eu preferiria digitar os dados diretamente no combobox!

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Se quiser pode usar um Table com o Combobox

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
   Table1.Active := true;
   Table1.Edit;
   Table1TIPO.Value := ComboBox1.Items.Strings[ComboBox1.itemindex];
   Table1.Post;
end;

se quiser usar um DBCombobox coloque na propriedade DataSource o nome do componente DataSource que esta linkado a sua tabela ( ex: Table1 e DataSource1 ou Query1 e DataSource1 )

e na propriedade DataField o nome do campo da sua tabela < UF >

ao digitar a silgla no DBCombobox a mesma será incluída na sua tabela na posição onde estiver o ponteiro do registro

OBS : a tabela deverá estar liberada para escrita

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz o que você orientou e ficou desta forma.

O DM é o datamodule que esta a tabela funcionario

mas deu o seguinte erro:

Undeclared indetifies: "Value"

DM.tblFuncionario.Active :=true;

DM.tblFuncionario.Edit;

DM.tblFuncionarioTIPO.Value:= ComboBox1.Items.Strings[ComboBox1.itemindex]; (Foi para esta linha que apontou o erro)

DM.tblFuncionario.Post;

Link para o comentário
Compartilhar em outros sites

  • 0
DM.tblFuncionarioTIPO.Value;

Undeclared indetifies: "Value"

identificador não declarado: "Value"

Este é um campo da sua tabela ? e se for, ele é string ou integer ?

o Combobox está retornando uma string

abraço

Este campo é do tipo TEXTO o meu banco de dados é em access, este campo e para salvar o estado (MG) por exemplo.

DM.tblFuncionarioTIPO.Value;

esta correto o codigo acima usando essa palavra TIPO?

Link para o comentário
Compartilhar em outros sites

  • 0
Este campo é do tipo TEXTO o meu banco de dados é em access, este campo e para salvar o estado (MG) por exemplo.

DM.tblFuncionarioTIPO.Value;

esta correto o codigo acima usando essa palavra TIPO?

esta correto ... voce pode ter esquecido de adiconar os campos ao componente ADOtable

de clique duplo sobre o componente ADOtable e com o botão direito do mouse clique na janelinha fields editor

clique em Add all fields

todos os campos da tabela irão aparecer dentro do fields editor ... o erro deve sumir

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olha o que voce postou:

Undeclared indetifies: "Value"

" Undeclared indentifier: 'tblFuncionarioTIPO"

o mesmo problema que te disse antes, lembra?

O erro é : identificador não declarado

significa que DM.tblFuncionarioTIPO.Value não esta declarado no seu programa, ou seja, está faltando voce adicioná-lo ao componente ADOTable ( já te expliquei no post acima como fazer isso ).

Voce precisa ler mais sobre o delphi ... procure apostilas e tutorias

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

o que mais tenho feito é lido, mas com sou iniciante, e como todo iniciante ainda tenho

dificuldade em aplicar tudo o que leio, fiz exatamente como mandou, cliquei duas vezes

e apareceu todos os campos que já estavam lá, somente atualizei depois deu esse erro.

Mas tudo bem! Muito obrigado por tentar ajudar ...

Link para o comentário
Compartilhar em outros sites

  • 0

nsouza, é importante você tentar entender os exemplos que são postos, mas não deve levá-los ao "pé da letra".

(...) entendi um pouco, o campo da minha tabela se chama UF a tabela se chama Funcionario, (...)
Isto você disse no post#3

E depois de reportar o erro, o Jhonas lhe fez esta pergunta no post#6

DM.tblFuncionarioTIPO.Value;

Undeclared indetifies: "Value"

identificador não declarado: "Value"

Este é um campo da sua tabela ? e se for, ele é string ou integer ?

e no post#7 você mostra sua incerteza

Este campo é do tipo TEXTO o meu banco de dados é em access, este campo e para salvar o estado (MG) por exemplo.

DM.tblFuncionarioTIPO.Value;

esta correto o codigo acima usando essa palavra TIPO?

Na verdade ele está incorreto!

Isto acaba acontecendo porque quando tentamos exemplificar, usamos nomes hipotéticos - não sabemos qual o nome que o "questionador" deu a sua tabela (não sabemos sequer, se é uma table ou uma query), campo, ...

Então, neste caso, como estava sendo tratado de UF, este exemplo deveria ser adaptado ao seu caso, logo não poderia ser TIPO, mas sim UF: DM.tblFuncionarioUF.Value;

Isto levando em consideração que você tenha adicionado os campos (Fields) ao seu dataset (table ou query). Porque do contrário, ainda teríamos a questão pensar no uso de DM.tblFuncionarioFieldByName('UF').Value

Pela dúvida, percebe-se que você não deve ter lido algum material que lhe explique como usar trabalhar com banco de dados e foi logo se jogando a programar, pois do contrário, você estaria usando TDBComboBox (como já sugeriu o colega Jhonas) - seria a opção mais simples para quem está começando - usaria componentes data-aware. Dê uma olhada nesta apostila Banco de Dados com Delphi (ref. Apostilando.com), ela é adequada ao iniciante, já que passa os conceitos básicos e acredito que você compreenderá que são estes componentes. Os bancos mudam, os componentes de acesso também, mas o conceito (a idéia) sobre como você interage com eles é sempre a mesma.

Bom estudo e não desanime.

Link para o comentário
Compartilhar em outros sites

  • 0

Estou usando o DM.tblFuncionarioFieldByName('UF').Value, achei mas facil e funcionou. Agora quanto ler, amigo, é o que mais estou fazendo, um dia teria que megulhar na programação, Li um livro de visual basic net de 1350 paginas, mas confesso que não da para memorizar ou capitular tudo na hora de programar.

Obrigado pelos conselhos, disposição e paciencia com quem esta começando.

As palavras de Mateus 7:12 se cumprem no caso de vocês.

Força sempre!!

nsouza, é importante você tentar entender os exemplos que são postos, mas não deve levá-los ao "pé da letra".
(...) entendi um pouco, o campo da minha tabela se chama UF a tabela se chama Funcionario, (...)
Isto você disse no post#3

E depois de reportar o erro, o Jhonas lhe fez esta pergunta no post#6

DM.tblFuncionarioTIPO.Value;

Undeclared indetifies: "Value"

identificador não declarado: "Value"

Este é um campo da sua tabela ? e se for, ele é string ou integer ?

e no post#7 você mostra sua incerteza

Este campo é do tipo TEXTO o meu banco de dados é em access, este campo e para salvar o estado (MG) por exemplo.

DM.tblFuncionarioTIPO.Value;

esta correto o codigo acima usando essa palavra TIPO?

Na verdade ele está incorreto!

Isto acaba acontecendo porque quando tentamos exemplificar, usamos nomes hipotéticos - não sabemos qual o nome que o "questionador" deu a sua tabela (não sabemos sequer, se é uma table ou uma query), campo, ...

Então, neste caso, como estava sendo tratado de UF, este exemplo deveria ser adaptado ao seu caso, logo não poderia ser TIPO, mas sim UF: DM.tblFuncionarioUF.Value;

Isto levando em consideração que você tenha adicionado os campos (Fields) ao seu dataset (table ou query). Porque do contrário, ainda teríamos a questão pensar no uso de DM.tblFuncionarioFieldByName('UF').Value

Pela dúvida, percebe-se que você não deve ter lido algum material que lhe explique como usar trabalhar com banco de dados e foi logo se jogando a programar, pois do contrário, você estaria usando TDBComboBox (como já sugeriu o colega Jhonas) - seria a opção mais simples para quem está começando - usaria componentes data-aware. Dê uma olhada nesta apostila Banco de Dados com Delphi (ref. Apostilando.com), ela é adequada ao iniciante, já que passa os conceitos básicos e acredito que você compreenderá que são estes componentes. Os bancos mudam, os componentes de acesso também, mas o conceito (a idéia) sobre como você interage com eles é sempre a mesma.

Bom estudo e não desanime.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...