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

Addnew


M@tEuS

Pergunta

16 respostass a esta questão

Posts Recomendados

  • 0

:P é, foi mal! Não expliquei direito.

É o seguinte: se eu tiver, por exemplo, uma tabela "Cadastro de Produtos", e essa tabela possui um campo chamado "Código do Produto", como eu faço para que quando eu click em "btnNovo", o Delphi gere automaticamente um valor numérico para esse campo (ex.:001, 002, 003,...)?

Link para o comentário
Compartilhar em outros sites

  • 0

:P é, foi mal! Não expliquei direito.

É o seguinte: se eu tiver, por exemplo, uma tabela "Cadastro de Produtos", e essa tabela possui um campo chamado "Código do Produto", como eu faço para que quando eu click em "btnNovo", o Delphi gere automaticamente um valor numérico para esse campo (ex.:001, 002, 003,...)?

Opa, agora sim,

já que você está usando Table, é so pegar o valor do ultimo registro antes de inserir o novo redistro.

tipo:

var
  i : integer;
begin
  Table1.Next;
  i := Table1.FieldByName('Codigo').Value + 1;
  
  Table1.Insert;
  Table1.FieldByName('Codigo').Value := i;
  etc...

end;

Abs. Progr'amador.

B)

Link para o comentário
Compartilhar em outros sites

  • 0

opa

E se eu, por exemplo, deletar um registro no meio da tabela, tem como

um novo registro usar o código do deletado?

então pela lógica da função acima não daria pois ela sempre irá pegar o último

código e criar um novo adicionando + 1, ou seja, 100, 101, 102 do jeito

que você queria...

O que você pode fazer, é uma rotina que procure por "buracos" nos códigos

dos produtos e assim se encontrado, o novo produto que vai ser cadastrado

vai ganhar aquele código, o que não é aconselhavél pois pode gerar futuros

conflitos com relatórios por exemplo...

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
:P é, foi mal! Não expliquei direito.

É o seguinte: se eu tiver, por exemplo, uma tabela "Cadastro de Produtos", e essa tabela possui um campo chamado "Código do Produto", como eu faço para que quando eu click em "btnNovo", o Delphi gere automaticamente um valor numérico para esse campo (ex.:001, 002, 003,...)?

Opa, agora sim,

já que você está usando Table, é so pegar o valor do ultimo registro antes de inserir o novo redistro.

tipo:

var
  i : integer;
begin
  Table1.Next;
  i := Table1.FieldByName('Codigo').Value + 1;
  
  Table1.Insert;
  Table1.FieldByName('Codigo').Value := i;
  etc...

end;

Abs. Progr'amador.

B)

Progr'amador, permitame apenas uma observação:

- deve ser substituído Table1.Next por Table1.Last, de modo a posicionar no último registro.

Apareceu a mensagem de erro: 'Could not convert variant of type (OleStr) into type (Double).'
M@tEuS, por acaso esse campo Codigo está definido no Access como Decimal ou outro com casas decimais? O ideal é que fosse Inteiro Longo.

Uma outra coisa que você também pode tentar é definir o tipo de dados que você quer atribuir. Por exemplo:

Table1.FieldByName('Codigo').AsInteger := i;

Table1.FieldByName('Codigo').AsFloat := i;

[]s

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...