1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Visual Basic 6

Discussão em 'Programação' iniciada por mprim, 18 de Outubro de 2006. (Respostas: 15; Visualizações: 1936)

  1. Estou a desenvolver uma aplicação em vb 6, e o que eu pretendia era que me pudessem ajudar numas linhas de codigo...
    comoé que eu faço calculos para as textbox da ultima coluna?



    por exemplo: somar todas as textbox da ultima coluna "Comparticipação" pra apresentar o resultado na textbox do total?

    Multipicar a coluna da quantidade pelo preço unitário para dar o preço total

    e fazer uma divisão por 2 nos resultados da coluna Incidência


    [​IMG]

    Ajudem-me please

    obrigado e um abraço
     
  2. RPortela

    RPortela Power Member

    boas,

    so uma pergunta,

    tas a trabalhar com uma base de dados, ou e apenas uma aplicação em que colocas os valores e depois obtens os resultado?

    se for uma "simples" aplicação em que se coloca os dados e ele calcula os valores e relativamente facil e ate te ajudo, mas se for com base de dados, ja nao te poxo ajudar.

    se for uma "simples" como eu dixe, refere os nomes das textbox e o "objectivo" dessa textbox, ou seja, se é ond apareçem os resultado, se é onde se insere algum valor, etc

    cumprimentos,
     
  3. pois, é com uma base de dados :P

    mas obrigado na mesma

    e como fazes com dados simples?
     
  4. Galbne_PT

    Galbne_PT Power Member

    1ª solução:
    Ao trabalhares com um bd, cada linha da tabela poes nas respectivas text box, ao mesmo tempo fazes as contas para uma ou varias variaveis.
    2ª solução:
    depois de carregares os valores para as textbox, fazes um ciclo em que apanhe todos os valores das textbox que keres calcular e calculas, utilizando p isso os nomes das textbox... sinceramente não gosto dessa solução, p além de dar mais trabalho a programar .

    cumps
     
  5. o problema é que ainda sou muito rookie no vb e gostava que me postasses um exemplo com 2 ou 3 linhas da tabela :P

    obrigado pela ajuda
     
  6. RPortela

    RPortela Power Member

    boas,

    a solução de que eu te falava, é a 1ª solução que o Galbne_PT referiu, ou seja: vou postar aqui um pequeno exemplo com aquilo que sei, espero estar correcto e conseguir ajudar-te.

    vamos super que tens 2 colunas com 3 linhas cada, e que atribuis a cada valor da coluna um valor da base de dados, e que usas as textbox para fazer a ligação, o codigo sera mais ao menos o seguinte:

    para somar:
    txtresultado.text = val(txtvalor1) + val(txtvalor2) + val(txtvalor3)

    para multiplicar a quantidade pelo pelo preço unitario:

    txtpreçototal.text = val(txtquantidade) * val(preçounitario)



    espero ter conseguido ajudar.

    cumprimentos,
     
  7. _Neo__

    _Neo__ Power Member

    para casos como este em que se tem necessidade de mostrar muitos dados no ecrã aconselho o uso do Microsoft FlexGrid Control (msflxgrd.ocx) poupas muito trabalho porque passas a poder referir-te aos campos por uma array ex:
    Código:
    MSFlexGrid1.TextMatrix(linha,coluna)="texto"
    o que torna a tarefa de mostrar os dados muito mais facil, com um ciclo for preenches a tabela na boa sem complicações, especialmente se tiveres a ler dados de uma bd, uma collection ou de uma array. o que disse para mostrar os dados tambem é valido para trabalhos com eles, sejam contas, validações, etc. acredita que o tempo que perdes a aprender a utilizar o controlo compensa bastante.

    APARTE:

    Eu sei que a maioria dos programadores acha este controlo inutil porque não permite a edição directa de dados (tipo excel), mas em contra partida fornece as coordenadas das celulas o que permite ainda mais flexibilidade, tenho algumas aplicações por exemplo em que o utilizador ao seleccionar uma coluna aparece uma textbox no lugar da celula, com o valor que a celula tinha e ja com o focus, e na coluna ao lado o utilizador ao carregar em vez de uma textbox aparece uma combobox, isto simplifica a vida ao utilizador que tem um programa mais facil de utilizar a facilita a vida a nos porque so temos de dar regras de introdução a um controlo em vez de os 20 ou 30 que a flexgrid veio substituir
     
  8. portela obrigado pela ajuda, foi uma grande ajuda.
    ja tinha feito essa linha de codigo mas em vez de text133.text = val(....).... trinha uma coisa tipo string& ou qualquer coisa do genero e as contas nao batiam certo :P

    obrigado mesmo, salvaste o meu estágio, lol

    e ja agora... pra fazer contas de dividir e cenas assim é so alterar os sinais?
     
  9. RPortela

    RPortela Power Member

    Boas,

    para fazeres outros "tipos" de calculos basta alterares os operados (sinais);

    penso que o teu erro devia-se dever ao facto de não converteres os valores em valores numericos, ficando tudo como string, logo quando somasses duas textbox´s que tivessem o valor 1, em vez de 2 terias 11 porque o que ele faria era a chamada "concantenação" de strings, ou seja, ele juntava as strings.

    não precisas de agradeçer por nada, o pessoal daqui do forum já me ajudou várias vezes e eu sempre que posso e sei, tento ajudar.

    cumprimentos,
     
  10. spastikman

    spastikman Banido

    crias arrays de caixas de texto. um array para cada tipo de caixa. e com um ciclo for, consegues percorrer os campos todos para os somar ;)
     
  11. no mesmo projecto gostaria de ter uma textbox onde inserisse o nome do utente ou outros dados e automaticamente abrir as informações do mesmo

    alguem percebeu? foi confuso? é tipo... localizar
     
  12. lol ja consegui

    Text3.Text = Val(Text1.Text) / 2
     
  13. RPortela

    RPortela Power Member

    boas,

    queres criar uma pesquisa? é isso?

    estas a trabalhar com bases de dados ne? se for com a estrutura ADO e fácil fazeres uma pesquisa se os campos da base de dados em que estás a fazer a pesquisa forem de texto.

    eu aconselho que cries um formulário, em que tenhas uma textbox com o criteiro de pesquisa, e uma option box com as opções de pesquisa, usas a estrutura case juntamente com o index da option box e consoante a opção escolhida pesquisas no campo desejado.

    cumprimentos
     
  14. lol, so um pequeno pormenor, fiz akela cena de calcular os valores das textbox, mas o problema é que só me deixa calcular numeros inteiros.

    para calcular numeros decimais como faço? :P

    acerca de localizar os dados, consegui arranjar um simples ource code que era feito com uma combobox. tava muito fixe e era mesmo o que eu precisava. era so escolher na combo e apareciam logo os dados.

    o problema é que quando tentava alterar os dados consoante a minha base de dados dava sempre erro

    aki esta o link desse projecto: http://vb-helper.com/HowTo/howto_combo_select_records.zip
     
    Última edição: 22 de Outubro de 2006
  15. RPortela

    RPortela Power Member

    boas,

    em relação aos calculos com valores decimais, penso que isso se deve dever ao facto de possivelmente teres as variaveis definidas como integer, para poder calcular numeros decimais deves ter isso definido como double.

    em relação á "selecção de dados" antes de mais tens que alterar os valores que la estao consoante o teu caso, ou seja: o nome da base de dados, a sua localização, a sua tabela e a ordem pela qual os nomes sao colocados.

    apenas uma nota: se na tua base de dados forem colocados muitos registos a combo box podera nao ser a melhor opção, porque vejamos, se chegares ao ponto de teres 500 registos, vais ter 500 valores na combo box, o que e capaz de ser um pouco "confuso", tudo depende do numero de registos que esta previsto a base de dados "levar".

    cumprimentos
     
  16. onde mudo a variavel pra double?

    quando mudo o dataformat da textbox o vb não deixa, diz que o data format nao esta disponivel para esta datasource
    na base de dados ja alterei o formato pra numero e depois para decimal mas mesmo assim nao me deixa...

    o que faço?'

    obrigado
     
    Última edição: 23 de Outubro de 2006

Partilhar esta Página