Bom dia a todos!
Primeiramente quero agradecer a ajuda do Reinaldo (Jedi), no tópico anterior!
Usando novamente a planilha exemplo disponibilizada por Renam Fernado Ruthes, pergunto se é possível carregar o ListBox com mais de 10 colunas, com dados de uma planilha do acccess.
Sub Preenche_Listbox()
'Cria variável que armazena os comandos SQL
Dim ComandoSQL As String
'Armazena na variável o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from tabela_clientes"
'Chama a rotina que faz a conexão com o BD
Call Conecta
'Atribui a variável objeto de BD a execução dos comandos SQL
Set consulta = banco.OpenRecordset(ComandoSQL)
'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
On Error Resume Next
'Populando o listbox
linhalistbox = 0
While Not consulta.EOF
With Me.ListBox1
.AddItem
.List(linhalistbox, 0) = consulta(0) 'ID
.List(linhalistbox, 1) = consulta(1) 'nome
.List(linhalistbox, 2) = consulta(2) 'Sobrenome
.List(linhalistbox, 3) = consulta(3) 'CPF
.List(linhalistbox, 4) = consulta(4) 'RG
.List(linhalistbox, 5) = consulta(5) 'Endereço
.List(linhalistbox, 6) = consulta(6) 'Numero
.List(linhalistbox, 7) = consulta(7) 'Cidade
.List(linhalistbox, 8) = consulta(8) 'Estado
.List(linhalistbox, 9) = consulta(9) 'Data
End With
linhalistbox = linhalistbox + 1
consulta.MoveNext
Wend
Call Desconecta
Me.lbl_registros = Me.ListBox1.ListCount
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
ListBox Excel x Access - ListBox com mais de 10 colunas
Moderador: joseA
-
- Colaborador
- Mensagens: 38
- Registrado em: Ter Abr 19, 2016 10:03 am
- Localização: Campinas, SP
- Contato:
ListBox Excel x Access - ListBox com mais de 10 colunas
- Anexos
-
- listbox e listview.rar
- (103.99 KiB) Baixado 535 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: ListBox Excel x Access - ListBox com mais de 10 colunas
De uma "olhada" no artigo no Blog https://www.tomasvasquez.com.br/blog/mi ... 0-colunas/
e no modelo viewtopic.php?t=4631
Experimente adaptá-lo a sua realidade, se não conseguir retorne especificando qual foi sua dificuldade.
Outro https://social.msdn.microsoft.com/Forum ... orum=vbapt
e no modelo viewtopic.php?t=4631
Experimente adaptá-lo a sua realidade, se não conseguir retorne especificando qual foi sua dificuldade.
Outro https://social.msdn.microsoft.com/Forum ... orum=vbapt
-
- Colaborador
- Mensagens: 38
- Registrado em: Ter Abr 19, 2016 10:03 am
- Localização: Campinas, SP
- Contato:
Re: ListBox Excel x Access - ListBox com mais de 10 colunas
Adicionei ColumnCount - Foi a ultima tentativa, como o banco é do access não consegui
While Not consulta.EOF
With Me.ListBox1
.ColumnCount = 20 'Define a qde de Colunas no Listbox
.AddItem
.List(linhalistbox, 0) = consulta(0) 'ID
.List(linhalistbox, 1) = consulta(1) 'nome
.List(linhalistbox, 2) = consulta(2) 'Equipe
.List(linhalistbox, 3) = consulta(3) 'RE
While Not consulta.EOF
With Me.ListBox1
.ColumnCount = 20 'Define a qde de Colunas no Listbox
.AddItem
.List(linhalistbox, 0) = consulta(0) 'ID
.List(linhalistbox, 1) = consulta(1) 'nome
.List(linhalistbox, 2) = consulta(2) 'Equipe
.List(linhalistbox, 3) = consulta(3) 'RE
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: ListBox Excel x Access - ListBox com mais de 10 colunas
Bom, muito lacônico seu retorno, "..como e do accesss..."
Independente da origem dos registros, para preenchimento direto o limite é 10 colunas (columnCount tb somente aceita até 10).
Vamos tentar:
No tópico https://social.msdn.microsoft.com/Forum ... orum=vbapt, e proposto utilizar uma área da planilha como
sendo origem de dados, essa área provavelmente deverá estar vazia e corresponder aproximadamente com a quantidade de registros/colunas esperado (é preciso testar a quantidade de registros); talvez não seja o mais recomendado, mas funciona.
Como não tenho um banco access disponivel segue modelo utilizando o modelo do Tomás no tópico viewtopic.php?t=4631 que tambem remete ao artigo do forum https://www.tomasvasquez.com.br/blog/mi ... 0-colunas/
Nesse artigo/topico e focado na "construção" de um Array ("Dim arrayItems()"), dimensionando/redimensionando com o tamanho dos registros desejados:
("ReDim arrayItems(1 To .UsedRange.Rows.Count, 1 To .UsedRange.Columns.Count), no seu caso UsedRows.rows deve ser substituido provavelmente por Consulta.RecordCount.
carregando-o com os registros desejados
Não testei nas creio que deverá ser algo +/- assim:
Independente da origem dos registros, para preenchimento direto o limite é 10 colunas (columnCount tb somente aceita até 10).
Vamos tentar:
No tópico https://social.msdn.microsoft.com/Forum ... orum=vbapt, e proposto utilizar uma área da planilha como
sendo origem de dados, essa área provavelmente deverá estar vazia e corresponder aproximadamente com a quantidade de registros/colunas esperado (é preciso testar a quantidade de registros); talvez não seja o mais recomendado, mas funciona.
Como não tenho um banco access disponivel segue modelo utilizando o modelo do Tomás no tópico viewtopic.php?t=4631 que tambem remete ao artigo do forum https://www.tomasvasquez.com.br/blog/mi ... 0-colunas/
Nesse artigo/topico e focado na "construção" de um Array ("Dim arrayItems()"), dimensionando/redimensionando com o tamanho dos registros desejados:
("ReDim arrayItems(1 To .UsedRange.Rows.Count, 1 To .UsedRange.Columns.Count), no seu caso UsedRows.rows deve ser substituido provavelmente por Consulta.RecordCount.
carregando-o com os registros desejados
Não testei nas creio que deverá ser algo +/- assim:
Código: Selecionar todos
Private Sub UserForm_Initialize()
Dim arrayItems()
Dim Linha As Integer, Coluna As Integer
Dim x As Integer, y As Integer
'obtem o numero de colunas do recordset
Coluna = consulta.Fields.Count
'move até o ultimo registro e obtem o quantidade total
consulta.MoveLast
Linha = consulta.RecordCount
'Redimensiona o array
ReDim arrayItems(1 To Linha, 1 To Coluna)
ListBox1.ColumnCount = Coluna
With consulta
For x = 1 To Linha
Me.ListBox1.AddItem
For y = 1 To Coluna
arrayItems(x, y) = consulta(y - 1)
Next y
Next x
End With
ListBox1.List = arrayItems()
End Sub