Fercal 0 Denunciar post Postado Janeiro 19, 2011 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
Daniel LM Costa 2 Denunciar post Postado Janeiro 19, 2011 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
Fercal 0 Denunciar post Postado Janeiro 20, 2011 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
Daniel LM Costa 2 Denunciar post Postado Janeiro 21, 2011 é nesse ponto que você precisa mexer na consulta em tempo de excução vou fazer o código e posto aqui pra você fazer essa mudança e te passo abraços Compartilhar este post Link para o post Compartilhar em outros sites
Fercal 0 Denunciar post Postado Janeiro 29, 2011 Bom dia Daniel. Obteve algum sucesso??? No aguardo Fernando Compartilhar este post Link para o post Compartilhar em outros sites