Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zenfra

Gerar Codigo de departamento automaticamente

Recommended Posts

Olá Pessoal..Gostaria de pedir ajuda a vocês para solucionar mais um problema.Vou explicar!..Eu tenho um formulário para cadastro de departamento em meu sistema e no banco onde é salvo os dados tenho 4 campos...Cod_dep = autonumeração -> "Criei para meu controle"Codigo = Texto -> "Codigo que quero gerar automaticamente com 4 dígitos a partir de 0001Dep = Texto -> "Nome do departamento"Resp = Texto -> "Responsável pelo Departamento"Bom, o que eu quero é o seguinte... criar uma função Public que verifique o ultimo Código na minha tabela departamento no Access e retorne o valor do ultimo código somando +1 para gerar o Código do novo departamento a ser inserido na tabela departamento...Eu só quero que essa função faça isso, verifique o ultimo código, some +1 ao ultimo código, retorne esse valor para uma variável onde eu possa usa lá para inserir através de uma Query esse novo código junto com os outros dados preenchidos no formulário pelo usuário.alguém sabe o que eu poderia fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, eu faço assim, defina uma variavel, por exemplo cta, le a tabela por ordem de codigo, pegue o maior e adicione 1:

 

cta = 0' aqui testa se você estiver incluindo.....  Verifica_RS1  rs1.Open "select * from dep order by cod_dep", cnngaragem  While Not rs1.EOF	  cta = rs1("cod_dep")	  rs1.MoveNext  Wend  cta = cta + 1

viu, no lugar de cnngaragem, você coloca a sua conexão, logico, esqueci de tirar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra solução seria usar a propriedade MoveLast, desta forma não seria necessário criar um laço while

 

cta = 0  rs1.Open "select cod_dep from dep order by cod_dep", cnngaragem  if rs1.recordcount>0 then	  rs1.MoveLast	  cta = rs1("cod_dep")  end if  cta = cta + 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou então se o access aceitar a função top coloca-la na própria instrução sql ordenando descendente, desta forma retornaria somente o registro de maior valor

 

cta = 0  rs1.Open "select top 1 cod_dep from dep order by cod_dep DESC", cnngaragem  if rs1.recordcount>0 then	  cta = rs1("cod_dep")  end if  cta = cta + 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.