Jump to content

Recommended Posts

smaia

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

Share this post


Link to post
Share on other sites
nelsonr

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 by nelsonr

Share this post


Link to post
Share on other sites
smaia

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

Share this post


Link to post
Share on other sites
nelsonr

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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.