Notifications
Clear all

duplo select

5 Posts
3 Usuários
0 Reactions
1,532 Visualizações
(@franca)
Posts: 0
New Member
Topic starter
 

Bom dia pessoal...estou desenvolvendo uma aplicação em VBA sql em access travei no duplo select.vou postar o código aki ... o que esta acontecendo não esta atualizando
nas outras linhas da listbox... se alguém pude me ajudar desde já agradeço.

o primeiro select puxa de uma tabela que esta exite relação de um para muitos de outras tabelas....em seguida os outros selects pesquisam na outras tabelas e retornan os resultados da consulta dos IDs.
em seguida carrega na minha listbox
ouvir falar do array mas nao consegui adapta vou deixar um modelo que peguei da net se esse for o problema.

[code]
btn_editar.Enabled = True
btn_salvar.Enabled = False
btn_excluir.Enabled = False

'1 ° SELECT
Dim comandoSQL As String
comandoSQL = "select * from tb_cota "
Call Conecta
Set consulta = banco.OpenRecordset(comandoSQL)

'2° SELECT
Dim id As Double
Dim comandoSQL2 As String
id = consulta(1)
comandoSQL2 = "select * from tb_plano where id_plano like '" & id & "'  "
Call Conecta
Set consulta2 = banco.OpenRecordset(comandoSQL2)

'3° SELECT
Dim op As String
Dim comandoSQL3 As String
op = consulta(2)
comandoSQL3 = "select * from tb_operacao "
Call Conecta
Set consulta3 = banco.OpenRecordset(comandoSQL3)

'4° SELECT
Dim ta As String
Dim comandoSQL4 As String
ta = consulta(1)
comandoSQL4 = "select * from tb_tarefa "
Call Conecta
Set consulta4 = banco.OpenRecordset(comandoSQL4)

'5° SELECT
Dim eim As String
Dim comandoSQL5 As String
eim = consulta(2)
comandoSQL5 = "select * from tb_eime "
Call Conecta
Set consulta5 = banco.OpenRecordset(comandoSQL5)


'6° SELECT
Dim seto As String
Dim comandoSQL6 As String
seto = consulta(2)
comandoSQL6 = "select * from tb_setor "
Call Conecta
Set consulta6 = banco.OpenRecordset(comandoSQL6)

'On Error Resume Next
linhalistbox = 0
list_cotas.Clear
While Not consulta.EOF
With Me.list_cotas
.AddItem
.List(linhalistbox, 0) = consulta2(1)
.List(linhalistbox, 1) = consulta3(1)
.List(linhalistbox, 2) = consulta4(1)
.List(linhalistbox, 3) = consulta(4)
.List(linhalistbox, 4) = consulta(5)
.List(linhalistbox, 5) = consulta(6)
.List(linhalistbox, 6) = consulta5(1)
.List(linhalistbox, 7) = consulta(0)
.List(linhalistbox, 8) = consulta6(1)
End With
consulta.MoveNext

'consulta2.MoveNext
linhalistbox = linhalistbox + 1

Wend

Call Desconecta

list_cotas.Locked = False



' modelo de array  * obs esse  modelo puxa os dados da planilha e nao da sql.

Dim arrayItems()
    With consulta
        ReDim arrayItems(1 To .UsedRange.Rows.Count, 1 To .UsedRange.Columns.Count)
        Me.ListBox1.ColumnCount = .UsedRange.Columns.Count
        For linha = 1 To .UsedRange.Rows.Count
            Me.ListBox1.AddItem
            For coluna = 1 To .UsedRange.Columns.Count
                arrayItems(linha, coluna) = .Cells(linha, coluna).Value
            Next coluna
        Next linha
        
        Me.ListBox1.List = arrayItems()
    End With[/code]
 
Postado : 03/10/2018 5:51 am
(@mprudencio)
Posts: 0
New Member
 

Pelo pouco que entendi vc criou um select para cada uma de suas tabelas do BD e o resultado de cada consulta é carregado na listbox uma em cada coluna. É isso?

Ja pensou usar powerquery pra normalizar esses dados?

Penso que vc precise de verificar os relacionamentos do banco para que possa assim criar uma consulta que vai te trazer os dados de acordo com o que vc precisa.

 
Postado : 03/10/2018 6:53 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

França,

Boa tarde!

Solicitamos, por gentileza, EDITAR a sua mensagem de modo a que os códigos VBA estejam dentro da ferramenta CODE (quinto botão da esquerda para a direita).

 
Postado : 03/10/2018 10:22 am
(@franca)
Posts: 0
New Member
Topic starter
 

isso. .....mas como faço isso

 
Postado : 03/10/2018 11:48 am
(@mprudencio)
Posts: 0
New Member
 

Faço isso o que?

Disponibilizar o arquivo?

É so clicar em adcionar anexo na hora de responder.

 
Postado : 03/10/2018 7:04 pm