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

Sign in to follow this  
gastao

datagrid selecionar valor e carregar num outro form

Recommended Posts

gastao

Boa tarde,

bem a minha duvida é a seguinte, eu tenho um form onde tenho uma datagridview onde me aparecem os clientes na minha base de dados, o que eu quero fazer, é ao seleccionar um dos clientes ele me carregar esses dados num outro form desenhado para os clientes.

Share this post


Link to post
Share on other sites
duduml

ah...ou seja, esses dados para um form onde tens textbox para o nome e coisas assim certo???

(eu não sou  grande coisa nisto, mas acho que posso ajudar  (mas tens de ter calma, sou lento lol) )

vou ver se tenho aqui um exemplo que sirva...:)

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
duduml

Private Sub DataGridView1_CellDoubleClick(..) 'tens de ir ao evento dois cliques da datagrid
            Dim Nome_familia, cod_familia As String
            Nome_familia = DataGridView1.Rows(e.RowIndex).Cells(0).Value 'guardas os dados de cada coluna em vars
            cod_familia = DataGridView1.Rows(e.RowIndex).Cells(1).Value
            Dim form As New familia2 'abres o form onde tens os dados
            form.MdiParent = MDIParent1
            form.Show()
            form.Alterar(Nome_familia, cod_familia) 'passas para la os valoes....
end sub

espero ter ajudado....:)


"use windows, você merece!"

Share this post


Link to post
Share on other sites
gastao

ah...ou seja, esses dados para um form onde tens textbox para o nome e coisas assim certo???

(eu não sou  grande coisa nisto, mas acho que posso ajudar  (mas tens de ter calma, sou lento lol) )

vou ver se tenho aqui um exemplo que sirva...:)

CUMPS

tranquilo, vou ver se csg pegar no teu exemplo e fazer...

Share this post


Link to post
Share on other sites
duduml

esqueci-me...

tens de por isto no form onde alteras os dados...

vars globais

Dim nome_familia_anterior, cod_familia_anterior As String

Sub Alterar(ByVal nome_familia As String, ByVal cod_familia As String)
        Nome_familiaTextBox.Text = nome_familia
        Cód_familiaTextBox.Text = cod_familia
        nome_familia_anterior = nome_familia
        cod_familia_anterior = cod_familia
    End Sub

desculpa-la..xD

abraço


"use windows, você merece!"

Share this post


Link to post
Share on other sites
gastao

eu no outro form tenho uma textbox1.text por exemplo como e q a vou preencher vindo dessa mesma datagrid... aquele codigo nao me tem nenhuma referencia ao form e a textbox ou ao proprio indice para eu prencher os restos dos campos

Share this post


Link to post
Share on other sites
duduml

preenches como está esse código aí em cima...passar para la os valores...

depois quando tiveres isso, basta fazer o update...

tipo isto:

Dim adapter_familia As New BD_StocksDataSetTableAdapters.familiaTableAdapter
        Try
            adapter_familia.Update(Me.Nome_familiaTextBox.Text, Me.Cód_familiaTextBox.Text, _
                                   nome_familia_anterior, cod_familia_anterior)
            MsgBox("Registo alterado com sucesso!", MsgBoxStyle.Information, Me.Text)
        Catch ex As Exception
            MsgBox(ex.Message)
            Me.Cód_familiaTextBox.SelectAll()
            Me.Cód_familiaTextBox.Focus()
        End Try

PS: agora está o código todo...

põe as tuas duvidas e explico tudinho...:) xD

cumps


"use windows, você merece!"

Share this post


Link to post
Share on other sites
gastao

preenches como está esse código aí em cima...passar para la os valores...

depois quando tiveres isso, basta fazer o update...

tipo isto:

Dim adapter_familia As New BD_StocksDataSetTableAdapters.familiaTableAdapter
        Try
            adapter_familia.Update(Me.Nome_familiaTextBox.Text, Me.Cód_familiaTextBox.Text, _
                                   nome_familia_anterior, cod_familia_anterior)
            MsgBox("Registo alterado com sucesso!", MsgBoxStyle.Information, Me.Text)
        Catch ex As Exception
            MsgBox(ex.Message)
            Me.Cód_familiaTextBox.SelectAll()
            Me.Cód_familiaTextBox.Focus()
        End Try

PS: agora está o código todo...

põe as tuas duvidas e explico tudinho...:) xD

cumps

tipo eu fiz o codigo parecido meio adaptado como tu disses te, abro o form da datagrid e ao carregar numa das cells ele abre me sim o outro form, mas sem valores

pus da seguinte forma...

no form da datagrid

Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

        Dim idcliente As String

        idcliente = DataGridView1.Rows(e.RowIndex).Cells(0).Value 'guardas os dados de cada coluna em vars

        Dim cliente As New Cliente 'abres o form onde tens os dados

        cliente.MdiParent = MdiParent

        cliente.Show()

        '  cliente.Alterar(idcliente) 'passas para la os valoes....:P esta variavel disses te me para passar para aonde???

    End Sub

na form de preencher os datagrids

nao fiz nada

nao percebo e onde queres q meta

vars globais

Código (vb.net): [seleccione]

Dim nome_familia_anterior, cod_familia_anterior As String

Código (vb.net): [seleccione]

Sub Alterar(ByVal nome_familia As String, ByVal cod_familia As String)

        Nome_familiaTextBox.Text = nome_familia

        Cód_familiaTextBox.Text = cod_familia

        nome_familia_anterior = nome_familia

        cod_familia_anterior = cod_familia

    End Sub

meto num modulo???

Share this post


Link to post
Share on other sites
duduml

na form onde abres, os registos para alterar, antes da class começar crias as vars globais...

depois crias um procedimento para o qual passas as vars....

como isto:

Sub Alterar(ByVal nome_familia As String, ByVal cod_familia As String)
        Nome_familiaTextBox.Text = nome_familia
        Cód_familiaTextBox.Text = cod_familia
        nome_familia_anterior = nome_familia
        cod_familia_anterior = cod_familia
    End Sub

(aqui os dados passam para as tuas textbox e assim...

depois é o codigo que faz o update a BD...

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
gastao

ja csg por a passar os valores para o form, mas imagina a seguinte situaçao eu mando esses codigos para o form e a partir desse mesmo valor ele filtra me a informaçao para o cliente que quer!

fazer do genero algo assim...

con.Open()

            Dim cmd As New OleDbCommand("select * from cliente where nomecliente = '" & textbox1.text & "'", con)

            Dim drdr As OleDbDataReader

            drdr = cmd.ExecuteReader

            drdr.Read()

            ' TextBox1.Text = drdr.Item("IDCliente")

            TextBox2.Text = drdr.Item("nomecliente")

é que pelos vistos ele assume que o focus está vazio

Share this post


Link to post
Share on other sites
pmaster

Tenta assim, que espero que resulte:

Dim cmd As New OleDbCommand("select * from cliente where nomecliente = '" & textbox1.text & "'", con)
Dim drdr As OleDbDataReader
drdr = cmd.ExecuteReader
While drdr.Read()
            TextBox1.Text = drdr.Item("IDCliente")
            TextBox2.Text = drdr.Item("nomecliente")
End While

Espero ter ajudado

Share this post


Link to post
Share on other sites
gastao

Tenta assim, que espero que resulte:

Dim cmd As New OleDbCommand("select * from cliente where nomecliente = '" & textbox1.text & "'", con)
Dim drdr As OleDbDataReader
drdr = cmd.ExecuteReader
While drdr.Read()
            TextBox1.Text = drdr.Item("IDCliente")
            TextBox2.Text = drdr.Item("nomecliente")
End While

Espero ter ajudado

esta me a dar a mesma situação, "select * from cliente where idcliente = ''" diz me q o meu select está vazio e o valor vem passado de outro form,,,

Share this post


Link to post
Share on other sites
vbtipo

Tens que utilizar variáveis públicas ou globais senão as variáveis vão em branco.


Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Share this post


Link to post
Share on other sites
gastao

esqueci-me...

tens de por isto no form onde alteras os dados...

vars globais

Dim nome_familia_anterior, cod_familia_anterior As String

meti a variavel global num modulo e nao me funciona ele ta me a passar o valor sempre a ""   

Public nome_familia_anterior As String

Sub Alterar(ByVal nome_familia As String, ByVal cod_familia As String)
        Nome_familiaTextBox.Text = nome_familia
        Cód_familiaTextBox.Text = cod_familia
        nome_familia_anterior = nome_familia
        cod_familia_anterior = cod_familia
    End Sub

desculpa-la..xD

abraço

Share this post


Link to post
Share on other sites
gastao

tenho um modulo onde pus aquela variavel!

Module Module1
    Public nome_familia_anterior, cod_familia_anterior As String
end module

De seguida fui ao form onde tenho a datagrid e onde quero seleccionar o indice da datagrid para me passar o valor para o outro form para ele carregar toda a informação referente ao desejavel e fiz da seguinte forma:

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Dim Nome_familia As String
        Nome_familia = DataGridView1.Rows(e.RowIndex).Cells(0).Value 'guardas os dados de cada coluna em vars
        Dim form As New Cliente 'abres o form onde tens os dados
        form.MdiParent = MdiParent
        form.Show()
        form.Alterar(Nome_familia) 'passas para la os valoes....
    End Sub

de seguida no form onde ele vai carregar a informação desejada fiz:

Public Sub Alterar(ByVal nome_familia As String)
        TextBox1.Text = nome_familia
        nome_familia_anterior = nome_familia
    End Sub

Ele carrega me o indiice da textbox1 com valor mas so visivel, porque eu agora quero carregar a informaçao da seguinte forma e nao da que fiz desta forma:

'con.Open()
        'Dim cmd As New OleDbCommand("select * from cliente where idcliente = '" & TextBox1.Text & "'", con)
        'Dim drdr As OleDbDataReader
        'drdr = cmd.ExecuteReader
        'While drdr.Read()
        '    TextBox1.Text = drdr.Item("idcliente")
        '    TextBox2.Text = drdr.Item("nomecliente")
        'End While
        'con.Close()

Share this post


Link to post
Share on other sites
duduml

em vez de pores

Dim cmd As New OleDbCommand("select * from cliente where idcliente = '" & TextBox1.Text & "'", con)

põe assim:

Dim cmd As New OleDbCommand("select * from cliente where idcliente = '" & nome_familia & "'", con)

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
gastao

em vez de pores

Dim cmd As New OleDbCommand("select * from cliente where idcliente = '" & TextBox1.Text & "'", con)

põe assim:

Dim cmd As New OleDbCommand("select * from cliente where idcliente = '" & nome_familia & "'", con)

CUMPS

dessa maneira o meu select ja me passa com valor mas continua me a dar erro e continua a me nao me preencher os restantes campos...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.