Ir para conteúdo

Arquivado

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

Fercal

Abrir um Form para exibir dados através de um datagridview

Recommended Posts

Bom dia Pessoal!

 

Sou totalmente iniciante em visual basic e estou tentando passar um programinha meu em access para o vb Estou com uma dúvida que não consegui achar a resposta. É o seguinte:

 

Tenho um Formulário chamado FormClientes onde nele eu crio, exibo e edito os dados do cliente, como ClienteID, ClienteNome, ClienteGrupo, ClienteImagem, etc...

No FormLoad, eu tenho esta linha de comando

Me.ClienteTableAdapter.Fill(Me.DataSet.CLiente)

que pelo pouco que sei é o comando que preenche os textboxs do Formulário.

 

Como são mais de 3.000 clientes cadastrados, criei outro form chamado FormLocalizarCliente, com um Datagridview com as colunas ClienteID e ClienteNome, onde o usuário pode localizar mais rápido o cliente desejado.

O que eu gostaria de fazer é que quando o usuário desse um duplo click no código do Cliente no Datagridview, o sistema abrisse o FormClientes e exibisse o registro selecionado.

Eu já consegui selecionar o ClienteID no Formulário localizar usando o seguinte código:

 

Sub DataGridView_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView.CellDoubleClick

'Aqui defino o cdigo a ser aberto:

Dim CodigoID = (DataGridView.Rows(e.RowIndex).Cells(0).Value.ToString())

 

O Próximo passo seria abrir o FormCliente "filtrado" pelo código selecionado.No access, eu utilizava o seginte comando:

DoCmd.OpenForm "FormCliente", acNormal, "", "[ClienteID]=Forms!ClienteLocalizar!CLienteID", , acNormal

mas no Vb não estou conseguindo.

 

Já tentei criar uma query no TableAdapter filtrando pelo Código selecionado, mais ou menos assim:

SELECT ClienteID, ClienteNome (....)

FROM Clientes

WHERE (ClienteID = "aqui que eu não sei o que colocar")

mas não sei bem se é por ai....

 

Alguém saberia como me ajudar????

Grato.

Fernando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia

 

Bem Vindo ao Imasters esperamos poder te ajudar, não esqueça de sempre olhar as regras do fórum.

 

..................................................................................................................................................................................................................................................................................

 

Olha só

 

Se você já criou o formCliente

 

Vou admitir que o vb que você diz é vb.net (depois informe se é 2005,2008 ou 2010)

 

Você pode cria uma sub new

 

assim

 

Sub New()

	' This call is required by the Windows Form Designer.
	InitializeComponent()

	' Add any initialization after the InitializeComponent() call.

End Sub

 

se digitar sub New ele completa o resto

 

 

altere a primeira linha e deixe o código da seguinte forma

 

 

 

 

Sub New(BYVal ClienteID as string)

	' This call is required by the Windows Form Designer.
	InitializeComponent()

	' Add any initialization after the InitializeComponent() call.

End Sub

 

no evento DoubleClick onde você pediu a ajuda coloque

 


dim f as new formCliente (codigoid)

f.showdialog

 

você assim vai passar para o form cliente o codigoId desejado

 

Não vou me alongar, mas qualquer coisa é só postar que a gentevai trocando um figurinha

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite Daniel, e obrigado por ter me respondido.

Bom, estou usando o Visual Basic 2010 Express, o banco de dados esta em Access2003 e o FormCliente ja esta criado. Ja consegui fazer ele abrir para criar, editar e exibir, inserir foto e etc... Fiz tudo como você mandou, mas quando clico no CódigoID do FormClienteLocalizar ele abre o FormCliente e mostra o primeiro registro e não o código que eu selecionei. Me de uma ajuda e veja onde estou errando.

 

No FormLocalizarCliente esta assim:

Public Class FormCustomerFind

   Private Sub FormCustomerFind_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.CustomerTableAdapter.Fill(Me.MyfcsoftDataSet.Customer)
   End Sub

   Sub CustomersDataGridView_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles CustomerDataGridView.CellDoubleClick
       Dim CodigoID = (CustomerDataGridView.Rows(e.RowIndex).Cells(0).Value.ToString())
       Dim f As New FormCustomer(CodigoID)
       f.showdialog()
   End Sub
End Class

 

No FormCliente esta assim

Public Class FormCustomer

   Sub New(ByVal CustomerID As String)
       InitializeComponent()
   End Sub

   Private Sub FormCustomer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.CustomerTableAdapter.Fill(Me.MyfcsoftDataSet.Customer)
   End Sub
End Class

 

Caro Daniel veja se você consegue me ajudar pois preciso muito usar este esquema para poder fazer tambem abrir as vendas por cliente, comissões por vendedor e outros.

 

Abraços

Fernando

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.