smaia Posted July 22, 2013 at 08:21 PM Report #519596 Posted July 22, 2013 at 08:21 PM Ola a todos, Estou a construir um programa em VB2010 onde num dos formulários existe uma Textbox associada a um botão de comando. O preciso de fazer é inserir o código do cliente "x" na textbox e quando pressionar o botão abrir-se um novo form com uma listview com dos dados apenas desse cliente. Como faço para carregar a listview apenas com os dados do código de cliente inserido na textbox? obrigado Sandro Maia
nelsonr Posted July 23, 2013 at 07:19 AM Report #519622 Posted July 23, 2013 at 07:19 AM (edited) Boas Sandro, e os dados do cliente estão guardados onde? Em base de dados? Que tipo de base de dados? Basicamente, quando clica no botão, abres um form que contem uma listview, passando o código do cliente para dentro do form. Nesse form, fazes a ligação à base de dados, lês os dados da tabela onde tens os clientes, filtrando pelo código. Passas pelo resultado e adicionas cada um à listview. -- Já agora, podem mover este topico para VB.NET, que cria confusão ao estar em VBA Edited July 23, 2013 at 07:19 AM by nelsonr
smaia Posted July 24, 2013 at 05:00 PM Author Report #519814 Posted July 24, 2013 at 05:00 PM Boas Sandro, e os dados do cliente estão guardados onde? Em base de dados? Que tipo de base de dados? Basicamente, quando clica no botão, abres um form que contem uma listview, passando o código do cliente para dentro do form. Nesse form, fazes a ligação à base de dados, lês os dados da tabela onde tens os clientes, filtrando pelo código. Passas pelo resultado e adicionas cada um à listview. -- Já agora, podem mover este topico para VB.NET, que cria confusão ao estar em VBA Olá Estou a utilizar base dados em acess. Podes colocar-em o exemplo do código? obrigado Sandro Maia
nelsonr Posted July 27, 2013 at 06:50 PM Report #520167 Posted July 27, 2013 at 06:50 PM Boas, aqui vai um exemplo assim feito "à pressão" Código do evento de clique do botão Private Sub btnVerDadosCliente_Click(sender As Object, e As EventArgs) Handles btnVerDadosCliente.Click ' Se o campo do código do cliente não estiver a vazio If Not String.IsNullOrEmpty(txtCodigoCliente.Text) Then ' Criar novo formulário para mostrar os dados do cliente Dim dadosCliente As New frmDadosCliente() Dim codigoCliente As Integer ' Converter o código para inteiro If Integer.TryParse(txtCodigoCliente.Text, codigoCliente) Then ' Preenche a lista com os dados do cliente (se existir) If dadosCliente.PreencheDadosCliente(codigoCliente) Then ' Caso exista, mostra a janela com os dados do cliente dadosCliente.ShowDialog() Else ' Caso o cliente não exista, mostra mensagem para informar o cliente MessageBox.Show("Cliente inexistente") End If Else ' Caso o código não seja numérico, mostra mensagem para informar o cliente MessageBox.Show("Código invalido") End If End If End Sub Função no formulário que tem a listview para preencher com os dados do cliente (frmDadosCliente) Public Function PreencheDadosCliente(CodigoCliente As Integer) As Boolean Dim EncontrouCliente As Boolean Dim connection As OleDbConnection Dim command As OleDbCommand Dim reader As OleDbDataReader ' Variavel que vai conter se encoutrou não um cliente com o código definido EncontrouCliente = False ' Abrir ligação à base de dados (alterar de acordo com a versão do Access a utilizar) connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\dados.accdb;Persist Security Info=False;") connection.Open() ' Definir o comando para procurar o cliente com o código definido command = New OleDbCommand(String.Format("SELECT * FROM Clientes WHERE Codigo={0}", CodigoCliente), connection) reader = command.ExecuteReader() ' Caso encontre algum registo If (reader.Read()) Then ' Guardar na variavel de retorno que encontrou o cliente EncontrouCliente = True ' Preencher a listview com os dados do cliente ListView1.Items.Add(reader.GetInt32(reader.GetOrdinal("codigo"))) ListView1.Items.Add(reader.GetString(reader.GetOrdinal("nome"))) ListView1.Items.Add(reader.GetString(reader.GetOrdinal("morada"))) End If ' Terminar ligações reader.Close() connection.Close() ' Retornar se encontrou ou não o cliente Return EncontrouCliente End Function
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now