Listbox alterar cód...
 
Notifications
Clear all

Listbox alterar código pela descrição

Página 2 / 2

NERI S
Posts: 213
Registered
Topic starter
(@neri-s)
Estimable Member
Entrou: 5 anos atrás

Utilizo o codigo abaixo quando tenho Lisview e funciona. 

Agora preciso utilizar Listbox e não sei as alterações a fazer. Alguém me ajuda?

Explicando:

1) A planilha dos dados chama-se OS. Ao salvar a mesma ao invés de salvar o nome do cliente, salvo o código (caso haja alguma alteração). Por este motivo no Select faço referencia a planilha Clientes.

2) Na parte do From informo as planilhas base de onde são extraídos os dados, neste caso planilha OS e clientes;

3) Ao montar a Where do cliente, vai até a planilha OS e pega o código do cliente. Após isto ele substitui o codigo pelo nome que está registrado lá em clientes.

Private Sub PopulaListBox()

On Error GoTo TrataErro

Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Dim sqlWhere As String
Dim sqlOrderBy As String
Dim i As Integer
Dim campo As Field
Dim myArray() As Variant

Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
.Open
End With

sql = "SELECT [OS$].[Codigo] ,[OS$].[Statusservico],[Clientes$].[Cliente] "

sql = sql & "FROM [OS$], [Clientes$]" 'Nome das Planilhas da procura nome

sql = sql & "WHERE [OS$].[Statusservico] = [OS$].[Statusservico] "
sql = sql & "AND [OS$].[Cliente] = [Clientes$].[Codigo] "

'monta a cláusula WHERE
Call MontaClausulaWhere(txtCliente.Name, "[Clientes$].[Cliente]", sqlWhere)
Call MontaClausulaWhere(txtResumoServicos.Name, "[OS$].[ResumoServicos] ", sqlWhere)
Responder
8 Respostas
NERI S
Posts: 213
Registered
Topic starter
(@neri-s)
Estimable Member
Entrou: 5 anos atrás

Eu já tinha desistido do assunto, mas ele tb pode ser útil para outras pessoas, e por isto anexo ele para tentar resolver.

O que a Listview em anexo faz:

- Se olhar o Contas a Receber, consta somente o número do cliente. O nome ele busco com base no código do mesmo, na planilha Clientes. 

- O que eu gostaria de fazer é: fazer a mesma coisa em Listbox.

Será que é possível? Acho que sim. Mas eu não sei fazer. Caso queiram fazer e disponibilizar, agradeço. Senão, não farei em Listbox e sim em Listview.

Como eu já postei acima, este exemplo eu baixei do Forum do Tomaz e sempre me foi muito útil. Até já mencionei  em outro post.

 

Responder
1 Responder
Anderson
Registered
(@anderson)
Entrou: 2 anos atrás

Estimable Member
Posts: 182

@neri-s

Se quiser aprender, assista a este vídeo:

https://youtu.be/CTq_aV6XSwU

Fiz o anexo abaixo e funcionou.

Responder
Página 2 / 2