Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

[Resolvido] Form de pesquisa não entrega valor

Recommended Posts

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 Class
frmClientes.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.OK
A 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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.