Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoP

Problema com valor alto em campo numérico

Recommended Posts

Olá pessoal, como estão?

 

Tenho um programinha aqui, não fui eu que fiz. Entendo alguma coisa de programação, mas nada de VB. Estou tendo dificuldades em resolver alguns problemas, parecem básicos, e gostaria de contar com a ajuda de vocês.

 

O programa funciona assim:

 

1) Ao abrir, pede um arquivo .mdb (que é onde os dados digitados no programa serão gravados).

2) Depois, eu preciso informar onde encontrar um arquivo txt, que contém as informações de códigos e nomes.

3) Quando esse arquivo é carregado, pressiono "Iniciar". Digito um código, ele mostra o nome embaixo (indicando que o código é referente àquele nome).

4) Aí eu tenho mais um campo pra digitar a quantidade. Essa quantidade vai ser gravada no .mdb, juntamente com o nome que é referente àquele código.

5) Vou digitando código, quantidade, e ele vai gravando.

6) Ao final da operação, eu peço para exportar um arquivo TXT (que vai ser gerado a partir do .mdb), e ele gera, contendo o código e a quantidade.

 

 

Tudo isso funciona bem. Só que tenho dois problemas (e tenho certeza que são simples de corrir sim). Um deles é quando:

 

Digito o código e, na quantidade, aperto a tecla Enter, sem ter informado um valor. Bom, toda vez que pressiona Enter com o valor digitado, ele já grava sozinho, e limpa tudo esperando o código. Quando não tem um valor numérico no campo de quantidade, e eu pressionar enter, ele dá problema e sai. Os erros são assim:

 

Run-time error '13':

 

Type mismatch

 

 

 

Se eu vou em Debug (no VB), ele me manda pra linha:

 

i = MsgBox("Quantidade inválida", "Inventário de Loja")

 

E isso fica escrito numa faixa amarela.

 

 

 

 

O outro erro é quando coloco um valor muito alto no campo de quantidade. Isso pode acontecer, no caso de eu estiver lendo códigos de barra, ler onde é pra ler mesmo (campo de leitura de código), e ler também no campo quantidade. Aí gera esse erro:

 

Run-time error '5':

 

Invalid procedure call or argument

 

 

 

Utilizando Debug, ele me manda pra linha:

 

Text2 = Trim(String(11 - Len(Trim(Text2.Text)), "0") & Text2.Text)

 

Text2 está definido logo um pouco acima da seguinte maneira:

Text2 = Format(Text2, "fixed")

 

 

 

Bom, não sei se dei muitas informações, mas espero que ajude a, quem sabe, ajudar a solucionar esses pequenos problemas.

 

 

Muito obrigado pela atenção de vocês!! Valeu!!

 

 

 

João

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta faltando parametros em i = MsgBox("Quantidade inválida", "Inventário de Loja")tinha ke ser msgbox "quantidade invalida", tipomsg, "titulo"ja o outro n posso ti ajudar ja que aki funciono perfeitamente ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema do segundo erro é o seguinte, se você colocar um número que tenha mais de 11 dígitos vai acontecer o seguinte:

Text2 = Trim(String(-1, "0") & Text2.Text)
O primeiro parâmetro da função string será negativo e isso não pode aconselho você a fazer da seguinte maneira usando uma verificação:

dim caracteres as integercaracteres = len(trim(Text2.text))if caracteres > 11 then caracteres = 11Text2 = Trim(String(11 - caracteres, "0") & Text2.Text)
Substitua a linha que está dando erro por essas acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.