• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Mcomando

[VB6] Ajuda para Textbox (Resolvido)

7 mensagens neste tópico

Sendo eu um aprendiz, e tendo como óbi esta coisa “maluca” de criar uns programazecos, preciso da ajuda de um Mestre para o seguinte problema:

Num Form, que vai inserir dados numa tabela.mdb, tenho uma Textbox que precisa de escolher o dado entre os 5 campos de outra tabela.

Experimentei com DataGrid, mas não sou capaz de construir o código para inserir o campo escolhido na Textbox.

Aliás, esta Textbox apenas servirá para achar um valor para a TextBox seguinte, não sendo necessária para a base de dados.

Agradeço a ajuda, pois ainda não consegui encontrar este exemplo em tudo o que li.

Clarifico melhor:

Adicionei um form ao programa. Meti as textbox ligadas aos campos de uma tabela.mdb.

Preciso que determinada Textbox vá a outra tabela de 5 campos fixos com valores diferentes e me permita escolher um deles.

Esta Textbox (Text1) não vai inserir o dado escolhido na BD, apenas servirá para encontrar o valor da Text3, assim:

Text3 = Text1 * Text2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epa... não consegui perceber o que queres fazer  :confused:  :-[

Podias tentar explicar melhor  :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epa... não consegui perceber o que queres fazer  :confused:  :-[

Podias tentar explicar melhor  :D

Cumps

Tenho uma tabela com 5 valores diferentes, que todas as semanas são alterados (TabelaPrecos)

Tenho outra tabela para inserir registos (Relatorio)

Adicionei ao projecto um Form a que dei o nome [RelatPrecos]; neste form coloquei todos os campos da tabela (Relatorio), tudo bem.

Todas as Textbox  tem o seu DataField individualizado, à excepção da TextXPTO,  para a qual quero escolher um dos valores da (TabelaPrecos).

Depois deste valor escolhido, devo achar achar o valor da TextZ multiplicando a TextXPTO pelo valor inserido noutra TextY, assim:

Private Sub TextZ_LostFocus()
If TextY >= 1 Then
    TextZ = TextY * TextXPTO
End If
End Sub

No registo da base de dados.mdb a TextXPTO será desprezada.

..........

Uma solução seria colocar uma Combobox em lugar de TextXPTO, com os cinco valores da (TabelaPrecos), mas como tornar activa essa Combobox  sempre que os preços alterassem?

-----------

Depois de postar o que está acima, continuei à procura de soluções e:

Utilizei uma DataGrid com os valores no form. Ao seleccionar o valor pretendido e ao passar pelo Text72 com LostFocus, este text assume o valor.

Bem, tenho de dizer ao usuário que quando passa pela Text55 se não tiver de colocar valor >= 1, tem que meter 0, senão dá erro, talvez porque não consegui o código perfeito

Private Sub DataGrid1_LostFocus()
Text72 = DataGrid1
End Sub

Private Sub Text56_LostFocus()
If Text55 >= 1 Then
Text56 = Text55 * Text72
End If
End Sub

Não sei aprofundar o IsNull e o zero no mesmo IF. Podem ajudar-me, por favor.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para resolver esse problema dos zeros podes fazer o seguinte:

if textX.text = vbnullstring then
     textX.text = 0
end if

E já agora, em vez de >= 1 podes meter apenas >0

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para resolver esse problema dos zeros podes fazer o seguinte:

if textX.text = vbnullstring then
     textX.text = 0
end if

E já agora, em vez de >= 1 podes meter apenas >0

Cumps

Obrigado NuGuN, 5 *****!

E agora pode sair mais uma ajuda: que fazer aos resultados da multiplicação dos Text, que ficam com 3, 4 ou 5 decimais. Os resultados deviam ter só ter 2 decimais.

Eu andei a procurar mas não consegui encontrar o Arredondamento de decimais.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado NuGuN, 5 *****!

E agora pode sair mais uma ajuda: que fazer aos resultados da multiplicação dos Text, que ficam com 3, 4 ou 5 decimais. Os resultados deviam ter só ter 2 decimais.

Eu andei a procurar mas não consegui encontrar o Arredondamento de decimais.

Cumps

Afinal já encontrei:

Text56 = ROUND((Text55 * Text72),2)

Vou guardar-te para a minha próxima dúvida. Obrigado.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

...

Vou guardar-te para a minha próxima dúvida. Obrigado.

Cumps

Diz então a tua dúvida, mas tens de ser ŕapido se não só já para a semana  ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora