GERAR CODIGO EXPADIDO

NILTON.VIANNA 22/06/2010 22:25:48
#345556

Boa noite amigos,
algum tempo eu tinha um rotina
Pra criar código expandido
Conforme exemplo abaixo ele começa a gerar a partir de 1, 2,3,4 etc...
é que meu cliente quer gerar automaticamente de 000001, 000002

Estou usando o Access com Tabela CadContrato, Chave Primaria ContratoID(Número)
Não sei se tenho que mudar pra em vez de numero texto a chave primaria.


Public Function ProximoNro(aTabela As String, aCampo As String) As Long
Dim MaiorNro As New ADODB.Recordset
MaiorNro.Open [Ô]SELECT MAX([Ô] & aCampo & [Ô]) FROM [Ô] & aTabela, CnSql, adOpenForwardOnly, adLockReadOnly
If IsNull(MaiorNro(0)) Then
ProximoNro = 1
Else
ProximoNro = CLng(MaiorNro(0)) + 1
End If
MaiorNro.Close
Set MaiorNro = Nothing
txtContratoID.Text = ProximoNro
End Function

Grato
Nilton
ASHKATCHUP 22/06/2010 23:59:09
#345558
Transforma a função em string e formate o resultado conforme você precisa... sinceramente, não vejo diferença entre 1 e 0001.
NILTON.VIANNA 23/06/2010 10:44:47
#345571
é que o formulário do contrato do cliente tem um campo
que é com 9 = [ ] -[ ] -[ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ]
e tem que ficar 0 0 0 0 0 0 0 0 1
-----------------------------------------------------------------
para não ter razuras. + ou - isso

Grato
Nilton
MSMJUDAS 23/06/2010 10:48:44
#345573
Isso aí é apenas formatação de valores, mas no banco vc grava somente o número sem os trocentos zeros à esquerda.

Eu uso bastante essa formatação, só pra fazer um [Ô]firula[Ô].

Ex.: TxtCodigo.Text = Format(Rs!PED_CODIGO, [Ô]000000[Ô])
NILTON.VIANNA 23/06/2010 19:08:04
#345615

if txtContratoID.Text = ProximoNro => 1 then
ProximoNro = [Ô]0000000[Ô]
End If

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