AUTO INCREMENTO DE CÓDIGO - LABEL
Boa noite a todos,
Gostaria da ajuda de vocês para implementar um campo com auto incremento de código.
Peguei um exemplo aqui mesmo no VbMania, na área de códigos fonte. O Código é este abaixo:
Dim vTamTab As Integer
Dim x As Integer
If Rst.RecordCount = 0 Then
LblCodi.Caption = 1
Exit Sub
Else
Rst.MoveFirst
vTamTab = Rst.RecordCount
For x = 1 To vTamTab
If Rst!CodiCont <> x Then
Exit For
End If
Rst.MoveLast
Next x
LblCodi.Caption = x
End If
O problema que encontrei nessa rotina é quando se exclui alguma cadastro:
Exemplo:
Suponhamos que temos cadastrado no banco os códigos 1, 2, 3, 4 e 5. Se excluirmos o código 2, ficará no banco os códigos 1,3,4 e 5.
O problema é quando eu vou cadastrar um novo código, ao invés de cadastrar o código 6, que seria o próximo na lista, porém, no código acima está cadastrando o código 2, que foi o código excluÃdo.
Poderiam me auxiliar na solução deste problema?
Antecipadamente agradeço a atenção de todos
Rogério Couto
Gostaria da ajuda de vocês para implementar um campo com auto incremento de código.
Peguei um exemplo aqui mesmo no VbMania, na área de códigos fonte. O Código é este abaixo:
Dim vTamTab As Integer
Dim x As Integer
If Rst.RecordCount = 0 Then
LblCodi.Caption = 1
Exit Sub
Else
Rst.MoveFirst
vTamTab = Rst.RecordCount
For x = 1 To vTamTab
If Rst!CodiCont <> x Then
Exit For
End If
Rst.MoveLast
Next x
LblCodi.Caption = x
End If
O problema que encontrei nessa rotina é quando se exclui alguma cadastro:
Exemplo:
Suponhamos que temos cadastrado no banco os códigos 1, 2, 3, 4 e 5. Se excluirmos o código 2, ficará no banco os códigos 1,3,4 e 5.
O problema é quando eu vou cadastrar um novo código, ao invés de cadastrar o código 6, que seria o próximo na lista, porém, no código acima está cadastrando o código 2, que foi o código excluÃdo.
Poderiam me auxiliar na solução deste problema?
Antecipadamente agradeço a atenção de todos
Rogério Couto
QUAL O BD ?
Microsoft SQL Server Express 2008
Eu uso o próprio incremento do banco de dados, coloco um campo Identity o nome da máquina
CREATE TABLE tblTeste (Codigo INT Identity(1,1), Nome VARCHAR(80), Maquina VARCHAR(80))
[Ô]SELECT MAX(Codigo) FROM tblTeste WHERE Maquina = [ô][Ô] & NomeDoPC & [Ô][ô][Ô]
Desta forma tenho o retorno do próprio banco de dados do registro independente do tipo de banco de dados que estiver usando
alguns usem o GEN_ID dos DBs porem eu não recomendo já que se vc tem um grande trafico de dados na rede é preciso de algum recurso para identificar o pc que gerou o GEN.
CREATE TABLE tblTeste (Codigo INT Identity(1,1), Nome VARCHAR(80), Maquina VARCHAR(80))
[Ô]SELECT MAX(Codigo) FROM tblTeste WHERE Maquina = [ô][Ô] & NomeDoPC & [Ô][ô][Ô]
Desta forma tenho o retorno do próprio banco de dados do registro independente do tipo de banco de dados que estiver usando
alguns usem o GEN_ID dos DBs porem eu não recomendo já que se vc tem um grande trafico de dados na rede é preciso de algum recurso para identificar o pc que gerou o GEN.
pode meter aqui o link do projecto por favor
Obrigado
Obrigado
Faça seu login para responder