Carcleo 4 Denunciar post Postado Novembro 22, 2008 Ola. Tenho um form de pedidos e na parte que temos que preencher com os dados do cliente, temos um botão para abrir um form de pesquiza de clientes igual ao que vemos no link do macoratti: http://www.macoratti.net/08/06/vbn_psv2.htm Acontece que quando, no form de pesquiza, quando cliko em selecionar o registro após ter escolhido, me retona registro = 0. Porem, se eu colocar um breakpoint no código antes de fechar o código ai a variavel registro, tanto no form de pesquisa quanto no form de peidos, esta com o valor correto, mas se eu insistir e forçar a execução após o breakpoint, o valor da variavel é zerada. segue os códigos: Pedidos.vb Imports MySql.Data.MySqlClient Public Class Pedidos Dim accDb As New DBConnection Dim registro As Integer Dim dr As DataRow Dim dt As DataTable Dim ds As DataSet = Nothing Private Sub bcliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcliente.Click Dim dialogo As New frmClientes dialogo.ShowDialog() If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then Dim tabela As String = "Clientes" Dim sql As String = "Select * from " & tabela & " where clienteID = '" & registro & "'" ds = accDb.ExecuteDS(sql, tabela) dt = ds.Tables(tabela) dr = dt.Rows(registro) codigo.Text = dr("clienteID") cliente.Text = dr("nome") registro = dr("clienteID") Else MsgBox("Não foi selecionado nenhum cliente.") codigo.Text = "" cliente.Text = "" End If End Sub End ClassfrmClientes.vb Imports MySql.Data.MySqlClient Public Class frmClientes Dim accDb As New DBConnection Dim ped As New Pedidos Dim registro As Integer Dim dr As DataRow Dim dt As DataTable Dim ds As DataSet = Nothing Dim tabela As String = "Clientes" Private Sub mostracolunas() DGWClientes.Columns.Item(0).HeaderText = "ID" DGWClientes.Columns.Item(1).HeaderText = "CPF_CNPJ" DGWClientes.Columns.Item(2).HeaderText = "NOME" DGWClientes.Columns.Item(3).HeaderText = "ENDEREÇO" DGWClientes.Columns.Item(4).HeaderText = "E-MAIL" DGWClientes.Columns.Item(5).HeaderText = "ATIVO" DGWClientes.Columns.Item(6).HeaderText = "DATA" DGWClientes.Columns.Item(7).HeaderText = "TIPO" DGWClientes.Columns.Item(5).Visible = False DGWClientes.Columns.Item(7).Visible = False End Sub Private Sub frmClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sql As String = "Select * from " & tabela & " where ativo='S'" ds = accDb.ExecuteDS(sql, tabela) DGWClientes.DataSource = ds.Tables(0).DefaultView mostracolunas() End Sub Private Sub P_Nome_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles P_Nome.TextChanged Try Dim sql As String = "Select * from " & tabela & " where ativo='S' and nome like '" & P_Nome.Text & "%'" ds = accDb.ExecuteDS(sql, tabela) DGWClientes.DataSource = ds.Tables(0).DefaultView Catch ex As Exception MessageBox.Show("Erro: " & ex.Message, "Sem conexão", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Try End Sub Private Sub Selecionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Selecionar.Click Dim linha As Integer = DGWClientes.CurrentRow.Index registro = DGWClientes.Item("clienteID", linha).Value.ToString DialogResult = System.Windows.Forms.DialogResult.OK Close() End Sub End Class Ah, só uma observação: Quando estoui depuirando o código, na linha DialogResult = System.Windows.Forms.DialogResult.OKA parte System.Windows.Forms.DialogResult.OK, da resultado ok e a parte DialogResult ja da Null.Como pode um resultado ok entregar null para a variavel? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Novembro 22, 2008 Obrigado pessoal, a variavel registro no form de pesquisa tinha que ser publica e não DIM(privada ao formulario ou ao escopo onde se encontra) e estava como DIM. Dessa forma, seu valor não chegaria de jeito nenhum ao form de pedidos. Obrigado a todos. Bola pra frente. Compartilhar este post Link para o post Compartilhar em outros sites