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

Dúvida Combobox (VB2005)

Discussão em 'Programação' iniciada por redshot, 28 de Janeiro de 2008. (Respostas: 5; Visualizações: 1347)

  1. redshot

    redshot Electromoderator
    Staff Member

    Boas.

    Estou a fazer uma aplicação de gestão de stocks com ligação a uma base de dados SQL.

    Como é que se faz para que ao adicionar, por exemplo, um IVA, apareçam esses valores numa combobox vindos da base de dados?

    edit: numa fase mais avançada quero fazer com que o programa guarde primeiro os dados numa listview e depois os passe para a base de dados. Portanto, vou reformular a pergunta: Como é que se faz o que descrevi acima mas a partir de uma listview que está noutro formulário?
     
    Última edição: 28 de Janeiro de 2008
  2. mOrSa

    mOrSa Power Member

    A melhor ideia, a meu ver, é criares uma tabela na Base de Dados com isso mesmo. Guardas os valores do IVA na tabela de IVA e no outro formulário vais ler os dados dessa mesma tabela!
    Confuso?

    Form1 (valores )-> Guardas o Valor na Base de Dados -> Form2 (ler valores da base de dados)

    Será isso?
    1abraço
     
  3. redshot

    redshot Electromoderator
    Staff Member

    Vou tentar fazer isso.

    Tenho outra dúvida (não sei se era melhor criar outra thread mas cá vai):

    Como é que se faz para ir buscar a um formulário qualquer um objecto e mexer nele como se estivesse no formulário activo?

    No meu caso, quero ir buscar dados de uma listview dentro de um formulário "público" para os pôr noutro formulário, e mexer nesses dados como se fosse uma base de dados.

    Agradeço desde já.
     
  4. mOrSa

    mOrSa Power Member

    Ora bem, não sei se é isto que pretendes mas cá vai:

    Supondo que tens um formulário pai (Form1) e chamas um segundo formulário (filho - Form2).
    O formulário Form2 é a ficha de cliente e, como tal, tem o nome, a morada, etc...
    Todavia, se queres que um desses objectos (form controls neste caso) já tenham valores ou estejam escondidos. Imagina que não queres que o campo idade esteja visível no Form2.
    Para chamar o formulário Form2 tens que o instanciar primeiro o objecto Form2 com o código
    Código:
    Dim frm2 As New Form2
    e assim tens um novo objecto, que pertence ao Form1, formulário pai.
    Posto isto, através de
    Código:
    frm2.NomeDoControlo.PropriedadeQueQueresAlterar = Valor
    consegues alterar valores e/ou propriedades desse segundo formulário. Após isto basta invocar o método frm2.Show() para mostrar o formulário com as alterações já feitas!

    Espero que responda às tuas questões!
    1abraço
     
    Última edição: 28 de Janeiro de 2008
  5. redshot

    redshot Electromoderator
    Staff Member

    Sim, é isso mesmo que eu queria. Mas como eu sou mais ou menos um "iniciadinho" em visual basic, vou complicar ainda mais a questão... Desculpem lá, mas é estou a fazer um estágio e como as aulas não chegaram para nos preparar como devia ser, recorro aqui a este fórum... Espero que compreendam!!

    Já consegui fazer essa ligação ao outro formulário, mas eu queria era passar os itens dessa listview "mãe", digamos, para a listview doutro formulário (que tem os menus principais e isso tudo). Mas como a base de dados já está normalizada, queria seleccionar os itens a por na listview principal e não metê-los todos iguais à da tabela "mãe" (do género de fazer o mesmo que se faz em SQL:
    Código:
    Select tabela1.qualquercoisa1, tabela2.qualquercoisa2 FROM tabela1, tabela2 WHERE tabela1.qualquercoisa1 = tabela2.indicequalquercoisa2
    ). Acho que é mais ou menos assim o que estava previsto inicialmente, antes de ter de fazer com que o programa guardasse quando lhe era pedido.

    Acho que me fiz entender.... Mas se for preciso vou buscar o código em SQL original e ponho aqui....

    Tentei pegar primeiro por um código que adiciona os itens desta forma:

    Código:
    Dim ls As New ListViewItem("1", 0)
            ls.SubItems.Add("Item da primeira coluna")
            ls.SubItems.Add("Item da segunda coluna")
            ListView1.Items.Add(ls)
    E tentei integrá-lo com um código que já usei para passar um valor de uma listview para uma label (e vice-versa) :

    Código:
    Label1.Text = (ListView1.Items(ListView1.SelectedItems(0).Index()).SubItems(1).Text)
    Mas não tive sorte. Acho que o problema deve estar mesmo neste último código, confundi-me todo ao misturar os dois.

    E é tudo por agora. :) Até acho que o meu testamento vai ter menos palavras do que isto...

    Obrigado desde já.
     
    Última edição: 28 de Janeiro de 2008
  6. slowman

    slowman Power Member

    redshot, tive bastantes dificuldades em saber o que pretendes mas vou tentar deixar aqui umas dicas.

    Quando precisares ir buscar os dados á BD usa um DataSet, bom e rápidos. Depois trabalhas nele como uma tabela e podes associar muito fácilmente a uma DataGridview que me parece melhro que uma listview.

    Outra coisa que podes fazer é assim: Quando precisas passar valores de um componente (textbox, listview, etc) podes sempre criar uma variável desse tipo e fazer por exemplo com uma textbox:

    - No form2 (sem ser o principal)
    Public txtBox1 as textbox ' Atenção a variável tem que ser publica para ser vista pelas diferentes classes do projecto

    'Algures no código quando vais retornar ao from principal chamado Form1

    Código:
    txtBox1= txtBoxComValorARetornar
    Me.DialogResult = Windows.Forms.DialogResult.OK
    
    Na codigo do Form1 onde chamas o form2 fazes assim
    
    if me.showdialog = DialogResult.Ok
       txtboxDoForm1.text=textBox1.text
    end if
    E podes fazer isso com qualquer componente.

    Espero ter ajudado.


    Cumps
     
    Última edição: 31 de Janeiro de 2008

Partilhar esta Página