NUMERACAO AUTOMATICA2
Gente, me ajuda nessa.
Meu código para gerar numeração automaática é esse:
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?
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?
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.
tenta isso ai so pra testes...
CursorID = "RE-" & Format(Replace(CursorID, "RE-", "") + CInt(1), "000#")
CursorID = "RE-" & Format(Replace(CursorID, "RE-", "") + CInt(1), "000#")
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?
Vc também pode utilizar da função MID do VB.
Crie uma variável para alocar o próximo número.
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