Ir para conteúdo

Arquivado

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

aureo2006

Buscar último registro + 1

Recommended Posts

Estou desenvolvendo um programa usando firebird e visual basic 6. Criei um formulario, que será vinculado a uma tabela do banco de ados com um dataenvironment. Tenho uma textbox que desejo que ao receber o foco ela seja preenchida com o número do último registro do campo de nome código(autonumeração+chave primária) da tabela cujo formulario está vinculado + 1. Pois bem. Eu criei uma variável chamada número para preenche-la, porém não tem jeito de eu conseguir buscar este número. Alguém sabe como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com a seguinte instrução SQL você consegue pegar o maior valor do campo:

select max(codigo) as codigo from tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todo o controle de dados do formulario (inserir, salvar, excluir etc...) é feito através de um dataenvironment. Eu tenho um DBgrid no formulario e achei que seria melhor usar este controle, inclusive por que estou projetando relatórios com ele. Pois bem. Eu preciso fazer com que ao inserir um novo registro o número do campo código seja identificado por que através dele é gerado um numero para um determinado campo que origina um código de barras, automaticamente. Não usei de forma expressa e direta nenhuma instrução SQL neste form. Tentei colocar numa variável, vinculada ao evento gotfocus do campo código, uma instrução SQL que buscasse ó numero do último registro da tabela acervo, ao qual eu pretendo acrescentar o número +1. Porém, aí é que eu encontrei a dificuldade: que comando SQL usar, e como usá-lo dentro de uma variável, na forma que eu pensei. Isto é, se esse for o melhor caminho inclusive, o que não sei, pois nunca tinha precisado faer isso. Daí me perdi. E vim ver se alguem conseguia me ajudar. Não sei se me fiz entender....Pelas explicações acho que deu para perceber que estou literalmente perdido....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para usar com o Data Enviroment você deve criar um novo Command na conexão, e colocar como SQL Estatemente essa instrução que eu te passei, daí você executa esse command e depois pegar o valor do campo codigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei um novo comando na conexão, com a instrução sql, chamado acervo1. Porém, não estou conseguindo executar e pegar o valor. Pode me ajudar, se não for abusar muito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que eu não tenho o DataEnviroment aqui, mas vamos tentar:

 

O comando para executar deve ser algo como execute.

DataEnvironment.<nome_do_command>.execute

Para ver depois o campo:

DataEnvironment.<nome_do_command>.recordset("codigo")

Tipo eu aconselho você a evitar usar coisas como os objetos data, dataenvironment e partir para ADO. O que deixa você com uma mobilidade maior e é mais prático.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui. Deu tudo certo. ObrigadoInclusive vou postar o código que utilizei, caso alguem precise dessa informação. Aqui este código retornou o valor do último registro, no campo autonumerado chamado "codigo", acrescido de + 1.Private Sub codigo_GotFocus()Dim numero As IntegerDataEnvironment.acervo1numero = DataEnvironment.rsacervo1("codigo")codigo.Text = numero + 1End Sub

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.