PREENCHER COM ZEROS A ESQUERDA

PEDROBB 10/03/2005 20:08:03
#72239
TABELA: CLIENTES
CAMPO: CONTA
APELIDO: CONTA
TIPO: CARACTERE
TAMANHO: 11
MASCARA: 9.999.999-9

COMO DEVO FAZER PARA PREENCHER COM ZEROS À ESQUERDA NO CAMPO CONTA ACIMA ??

GRATO
PEDRO


WEBMASTER 10/03/2005 20:39:05
#72243
Resposta escolhida
Function zeroesquerda(byval nNumero as long ,byval nTamanho as long ) As String
Dim cVarZero
Dim nLenNumero
If nNumero =0 Then
zeroesquerda = ""
Else
cVarZero = right("000000000000"&trim(str(nNumero)),nTamanho)
zeroesquerda = cVarZero
End If
End Function
USUARIO.EXCLUIDOS 10/03/2005 22:56:18
#72253
isto:

numero = right("0000" & valor,6)

para o caso de 6 numeros.... e assim vai...
LCSD 11/03/2005 08:35:55
#72269
Tente assim (não deu para testar AGORA, mas creio que funcione).

numero = cstr(format(valor,"00000000"))

PS: Só funcionará se a variável NUMERO for do tipo STRING, pois se for do tipo NUMERICO, ele não aceitará "zeros a esquerda".
IVOFABIANO 11/03/2005 09:39:26
#72276
Prefiro essa função onde vc passa o numero desejado e a quantidade de zeros a esquerda que vc quer :

Public Function zeros_esquerda(ByVal str As String,ByVal qtd As Integer) As String
Dim aux%, i%

aux = Len(str)

For i = 1 To (qtd - aux)
str = "0" & str
Next

zeros_esquerda = str

End Function

Abraços
USUARIO.EXCLUIDOS 11/03/2005 09:46:03
#72278
INFOFABIANO Não leve a mal...

Para atribuir a variável result o valor 10
veja:
For i = 1 to 10
valor = valor + 1
result = valor
Next

Não há necessidade de usar LOOPING só para fazer esta tarefa simples...
Temos que buscar a OTIMIZAÇÃO de processos..

Olha agora:

result = 10


Foi só pra exemplificar que pelo método do LCSD é mais prático....
Até mais amigo..
IVOFABIANO 11/03/2005 09:52:54
#72283
Claro, mas calcule a diferença de tempo e se for significativa, me avise.
A idéia foi somente de dar + 1 exemplo... O lance que eu quis enfocar é criar a função com a possibilidade de dizer a qtd de zeros à  esquerda desejados.

Abraços.
PEDROBB 11/03/2005 22:30:12
#72509
Agradeço a gentileza de todos os colaboradores, mas está ocorrendo o seguinte:

Eu digito: 1111
Apos teclar TAB fica: 1.111
Eu preciso que fique assim: 0.000.111-1
Sou muito fraco em programação, por isso estou insistindo.
Valeu""""

Pedro
WEBMASTER 15/03/2005 23:58:02
#73146
Será que é isso que você quer,

Citação:



Private Sub Form_Load()

MsgBox mascara(1111)
MsgBox mascara(22222)

End Sub


Function mascara(ByVal Numero As Long) As String

mascara = Format$(Numero, "0/000/000-0")
mascara = Replace(mascara, "/", ".")

End Function


ELMO01 16/03/2005 08:12:01
#73161
Pedro, tente usar esta função

Public Function FormataZerosEsq(Valor, nZeros As Integer)
FormataZerosEsq = Format(Valor, String(nZeros, "0"))
End Function

onde:

valor -> é o valor que vai ter os zeros a esquerda
nZeros -> é a quantidade de zeros que você deseja
WEBMASTER 16/03/2005 09:11:01
#73169
Resolveu o seu problema,

Citação:

Private Sub Form_Load()

MsgBox mascara(1111)
MsgBox mascara(22222)

End Sub


Function mascara(ByVal Numero As Long) As String

mascara = Format$(Numero, "0/000/000-0")
mascara = Replace(mascara, "/", ".")

End Function



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