NUMERACAO AUTOMATICA2

IRENKO 29/08/2007 11:48:11
#233216
Gente, me ajuda nessa.

Meu código para gerar numeração automaática é esse:

Private Sub GeraCodigo()
'Gerando codigos sequenciais de acordo com o ultimo reg


Set rstTemp = New ADODB.Recordset
rstTemp.Open "SELECT Controle FROM Requisicao ORDER BY Controle", _
Banco2, adOpenStatic, adLockOptimistic, adCmdText
With rstTemp
If .EOF = True And .BOF = True Then
CursorID = "0001"

Else
.MoveLast

CursorID = "RE" & "-" & Format(Val(Right$(CursorID, 4)) + 1, "0000")
End If

End With
rstTemp.Close
Set rstTemp = Nothing
End Sub


O problema é que o campo Controle é texto gravado como:RE-0000.

digamos que o ultimo seja RE-0084 eu teria que retirar o (RE-), transformar o texto para interger ou outro e depois somar + 1, como posso fazer isso?
JESUEL.OLIVEIRA 29/08/2007 12:54:09
#233247
Amigo, coloque na base de dados numeração automatica depois concatena o RE, é mais seguro, quando vc faz a soma de mais UM em um ambiente cliente servidor, duas pessoas podem esta gerando o código ao mesmo tempo gerando duplicidade.
RODRIGOGBGOMES 29/08/2007 12:59:44
#233251
tenta isso ai so pra testes...

CursorID = "RE-" & Format(Replace(CursorID, "RE-", "") + CInt(1), "000#")
USUARIO.EXCLUIDOS 29/08/2007 13:00:16
#233252
Resposta escolhida

Faz assim:

Private Sub GeraCodigo()
'Gerando codigos sequenciais de acordo com o ultimo reg


Set rstTemp = New ADODB.Recordset
rstTemp.Open "SELECT Controle FROM Requisicao ORDER BY Controle", _
Banco2, adOpenStatic, adLockOptimistic, adCmdText
With rstTemp
If .EOF = True And .BOF = True Then
CursorID = "0001"

Else
.MoveLast
Código = val(Tabela!Controle) 'assim ele pega só o valor numérico

CursorID = "RE" & "-" & Format(Código + 1, "0000")
End If

End With
rstTemp.Close
Set rstTemp = Nothing
End Sub


veja se da certo?
VB6MASTER 29/08/2007 14:14:53
#233273
Vc também pode utilizar da função MID do VB.
Crie uma variável para alocar o próximo número.
Citação:

CursorID = "RE" & "-" & Format(Val(Right$(CursorID, 4)) + 1, "0000")
End If

End With


ProximoNumero = cint(mid(cursorID, 4,7))+1    'retira o RE- 

Tópico encerrado , respostas não são mais permitidas