Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por Diego100ges
Posts
#62812
Pessoal, boa tarde!

To com um dificuldade em um código aqui, gostaria da ajuda de vocês, o código é relativamente simples, quando eu marcar a checkbox do item selecionado o código da um select no banco e me mostra as informações, até ai ok esta rodando, e a segunda parte é quando eu desmarcar essa checkbox eu quero que limpe o listview e de outro select no banco, mas essa parte não está indo kkkk, alias só funciona no ultimo item do listview, nos demais não.

Segue o código
Código: Selecionar todos
Private Sub lista_unidades_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim produto As Integer

Call Conecta

cotacao = lbl_ncotacao
For i = 1 To lista_unidades.ListItems.Count

    produto = lista_unidades.ListItems.Item(i)

        If lista_unidades.ListItems.Item(i).Checked = True Then
            lista_ofertas.ListItems.Clear

            Set rs = New ADODB.Recordset
            comando = "Select * from bd_ofertas_cotacoes where Cotacao like '" & cotacao & "' and "
            comando = comando & "Produto like '" & produto & "'"
            rs.Open comando, conexao, 3, 3

            While Not rs.EOF
            Set list = lista_ofertas.ListItems.Add(Text:=rs("Comercializadora"))
            list.SubItems(1) = rs("Preco") & vbNullString
            list.SubItems(2) = rs("Tipo") & vbNullString
            list.SubItems(3) = rs("Validade") & vbNullString
            linhalistbox = linhalistbox + 1
            rs.MoveNext
            Wend
    
            If lista_unidades.ListItems.Item(i).Checked = False Then
                lista_ofertas.ListItems.Clear
    
                Set rs = Nothing
    
                Set rs = New ADODB.Recordset
                comando = "Select Distinct * from bd_ofertas_cotacoes where Cotacao like '" & cotacao & "'"
                rs.Open comando, conexao, 3, 3
    
                While Not rs.EOF
                Set list = lista_ofertas.ListItems.Add(Text:=rs("Comercializadora"))
                list.SubItems(1) = rs("Preco") & vbNullString
                list.SubItems(2) = rs("Tipo") & vbNullString
                list.SubItems(3) = rs("Validade") & vbNullString
                list.SubItems(4) = rs("Vencimento") & vbNullString
                linhalistbox = linhalistbox + 1
                rs.MoveNext
                Wend
            End If

        End If
Next

Call Desconecta
End Sub
Avatar do usuário
Por CursoDeExcelGratis
Posts Avatar
#63817
o que está esquisito no seu codigo é que vc não está usando em nenhum lugar o parâmetro passado no evento itemcheck ( ByVal Item As MSComctlLib.ListItem )

esse parametro representa justamente o item clicado / desclicado , então no lugar de um looping, que passa por todos os itens, vc deveria pegar direto o item clicado, passado no parâmetro, não seria isso ?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord