Jump to content
raffrenan

EXCEL + VBA [ LISTVIEW ]

Recommended Posts

E ae galera, seguinte, estou desenvolvendo um sistema em vba no excel para a empresa que trabalho, porém estou utilizando um sistema de consulta com listview, onde ele busca do banco de dados, porém preciso que esses dados sejam mostrados em uma textbox específica, porém não estou conseguindo, segue o código:

Private Sub Btn_Consulta_Click()

    Dim strSql As String
    
    ID = Me.TxtConsulta
    
    Set rs = New ADODB.Recordset
    
    strSql = "SELECT ID_Monitor AS [Código], Nome AS [Nome do Operador],"
    strSql = strSql & " * FROM Monitores WHERE ID_Monitor LIKE '" & ID & "'"
    
    rs.Open strSql, MiConexao
    
    On Error Resume Next
    
    Me.Lista.ListItems.Clear
    
    With Me.Lista
    
        .View = lvwReport
        .Gridlines = True
        .FullRowSelect = True
        .ColumnHeaders.Clear
        
    For i = 0 To rs.Fields.Count - 1
    
        .ColumnHeaders.Add i + 1, , VBA.UCase(rs(i).Name)
        
    Next i
    
    End With
    
    While Not rs.EOF
    
    Set Lrst = Me.Lista.ListItems.Add(Text:=rs(0))
    
        Lrst.SubItems(1) = rs(1)
        Lrst.SubItems(2) = rs(2)
        Lrst.SubItems(3) = rs(3)
        Lrst.SubItems(4) = rs(4)
        Lrst.SubItems(5) = rs(5)
        Lrst.SubItems(6) = rs(6)
    
        rs.MoveNext
    
    Wend
    
    Me.TxtConsulta = ""
    Me.TxtConsulta.SetFocus
    

End Sub

Private Sub Lista_ItemClick(ByVal Item As MSComctlLib.ListItem)

Dim Linha As Variant
    
 Linha = Me.Lista.List.Index
 
 Me.TxtNomeView = Me.Lista.List(Linha, 3)
 
End Sub

Private Sub UserForm_Initialize()

Call Conecta

End Sub

 

Lembrando que ele consulta normalmente e mostra na listview, porém quando eu clico em uma opção da lista ele retorna erro.

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

  • Similar Content

    • By kendy1290
      Olá! Estou com problema referente a exportação de gráficos do Excel via VBA para apresentação do PowerPoint. A maneira que encontrei, inclusive em várias fontes é de exportar vários gráficos de uma vez ou uma ,em uma nova apresentação. O que estou precisando é de exportar os gráficos do Excel em um arquivo do PowerPoint existente, em slides e locais específicos das apresentações. Se alguém tiver alguma  ideia de como fazer seria de muita ajuda. 
    • By sapinhox
      Tenho um programa desenvolvido em VBA para Autocad, o mesmo tem duas linhas de programação que estão dando o seguinte erro:
       
       
      as linhas que estão dando erro são as seguintes
       
      Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
      Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
       
      Acredito que tenha alguma coisa a ver do fato do sistema instalado ser 64 bits, algum tem alguma solução para o caso.
       
      Desde já agradeço
       

    • By cesarhtc
      Boa tarde não estou conseguindo rodar o codigo abaixo:

       
      Const IntervaloSegundos = 5 * 60 ' 5 minutos de intervalo Sub Iniciar() Alarme = Now + TimeSerial(0, 0, IntervaloSegundos) Application.OnTime EarliestTime:=Alarme, procedure:="Macro_Atualizar_Tramite_web", schedule:=True End Sub Function Macro_Atualizar_Tramite_web() On Error GoTo Macro_Atualizar_Tramite_web_Err DoCmd.SetWarnings False DoCmd.OpenQuery "CRIAR_TABELA_TRAMITACAO_CONTRATACAO", acViewNormal, acEdit DoCmd.OpenQuery "CRIAR_TABELA_TRAMITACAO_CONSUMO", acViewNormal, acEdit Beep MsgBox "Dados Atualizados!", vbExclamation, "Carga" Macro_Atualizar_Tramite_web_Exit: Exit Function Macro_Atualizar_Tramite_web_Err: MsgBox Error$ Resume Macro_Atualizar_Tramite_web_Exit Call Iniciar End Function Sub Parar() On Error Resume Next Application.OnTime EarliestTime:=Alarme, procedure:="Macro_Atualizar_Tramite_web", schedule:=False End Sub Obrigado
    • By Fabio de Souza
      Ola amigos é minha primeira vez no forum,
       
      Estou com o seguinte problema:
       
      efetuei uma planilha em vba excel, porem em uma determinada textbox, estou tendo dor de cabeça,
      fiz uma tabela que busca de valores e insere de valores.
       
      Na tabela fde inserção de valores, tudo, ok
      efetuei a formula com comando Cdate(textde) - quando preenche a mesma ela inserre corretamente em formato de datas porem,
      na  busca de valores quando a celula na estão preenchida ele nãos tras nada nesta txtDE, e quando eu efetuo a alteração ele da erro,
      porque na opção "Cdade" tem que esdta preenchida com alguma coisa...
       
       
      consegume me ajudar?
      ' este faz a busca de valores:
       
      Private Sub txtLocaliza_AfterUpdate()
      Dim intervalo As Range
      Dim texto As String
      Dim codigo As Integer
      Dim pequisa
      Dim mensagem
          codigo = txtLocaliza.Value
      'Sheets("Clientes").Select
      Set intervalo = Sheets("Clientes").Range("A:Y")
      On Error GoTo trataErro
      pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 2, False)
      pesq1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 3, False)
      pesq2 = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False)
      pesq3 = Application.WorksheetFunction.VLookup(codigo, intervalo, 5, False)
      pesq4 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False)
      pesq5 = Application.WorksheetFunction.VLookup(codigo, intervalo, 7, False)
      pesq6 = Application.WorksheetFunction.VLookup(codigo, intervalo, 8, False)
      pesq7 = Application.WorksheetFunction.VLookup(codigo, intervalo, 9, False)
      pesq8 = Application.WorksheetFunction.VLookup(codigo, intervalo, 10, False)
      pesq9 = Application.WorksheetFunction.VLookup(codigo, intervalo, 11, False)
      pesq10 = Application.WorksheetFunction.VLookup(codigo, intervalo, 12, False)
      pesq11 = Application.WorksheetFunction.VLookup(codigo, intervalo, 13, False)
      pesq12 = Application.WorksheetFunction.VLookup(codigo, intervalo, 14, False)
      pesq13 = Application.WorksheetFunction.VLookup(codigo, intervalo, 15, False)
      pesq14 = Application.WorksheetFunction.VLookup(codigo, intervalo, 16, False)
      pesq15 = Application.WorksheetFunction.VLookup(codigo, intervalo, 17, False)
      pesq16 = Application.WorksheetFunction.VLookup(codigo, intervalo, 18, False)
      pesq17 = Application.WorksheetFunction.VLookup(codigo, intervalo, 19, False)
      pesq18 = Application.WorksheetFunction.VLookup(codigo, intervalo, 20, False)
      pesq19 = Application.WorksheetFunction.VLookup(codigo, intervalo, 21, False)
      pesq20 = Application.WorksheetFunction.VLookup(codigo, intervalo, 22, False)
      pesq21 = Application.WorksheetFunction.VLookup(codigo, intervalo, 23, False)
      pesq22 = Application.WorksheetFunction.VLookup(codigo, intervalo, 24, False)
      pesq23 = Application.WorksheetFunction.VLookup(codigo, intervalo, 25, False)
      pesq24 = Application.WorksheetFunction.VLookup(codigo, intervalo, 1, False)
      lblCod = pesq24
      txtAddress = CDate(pesquisa)
      txtNumber = pesq1
      txtNeighb = pesq2
      txtCity = pesq3
      cbUF = pesq4
      txtDDD1 = Format(CCur(pesq5), "#0.000")
      txtPhone1 = Format(CCur(pesq6), "#0.000")
      txtDDD2 = Format(CCur(pesq7), "#0.000")
      txtPhone2 = Format(CCur(pesq8), "#0.000")
      txtEmail = Format(CCur(pesq9), "#0.000")
      txtmn = Format(CCur(pesq10), "#0.000")
      txtti = Format(CCur(pesq11), "#0.000")
      txtal = Format(CCur(pesq12), "#0.000")
      txtcomplemento = pesq13
      If pesq14 <> "" Then
      txtDT = CDate(pesq14)
      End If
      txtIN = pesq15
      txtTR = pesq16
      ''If pesq17 <> "" Then
      txtPeso = Format(CCur(pesq17), "###,##0.000")
      ''End If
      txtPecas = pesq18
      ''If pesq19 <> "" Then
      txtPB = Format(CCur(pesq19), "###,##0.000")
      ''End If
      ''If pesq20 <> "" Then
      txtPL = Format(CCur(pesq20), "###,##0.000")
      ''End If
      If pesq21 <> "" Then
      txtDE = CDate(pesq21)
      End If
      txtDS = pesq22
      txtVT = pesq23
      Exit Sub
      trataErro:
         texto = "Não Localizado"
         mensagem = MsgBox(texto, vbOKOnly + vbInformation)
      End Sub
       
      'este altera na tabela
       
      Sub lsAlterarStudent()
          
          'Define a Range de Pesquisa
          Set currentFind = Worksheets("Clientes").Range("A:A").Find(frmCadastroStudents.lblCod, , _
              Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _
              Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)
              
          lLinha = currentFind.Row
          
          With frmCadastroStudents
              Sheets("Clientes").Cells(lLinha, 2).Value = CDate(.txtAddress)
              Sheets("Clientes").Cells(lLinha, 3).Value = .txtNumber
              Sheets("Clientes").Cells(lLinha, 4).Value = .txtNeighb
              Sheets("Clientes").Cells(lLinha, 5).Value = .txtCity
              Sheets("Clientes").Cells(lLinha, 6).Value = .cbUF
              Sheets("Clientes").Cells(lLinha, 7).Value = CCur(.txtDDD1)
              Sheets("Clientes").Cells(lLinha, 8).Value = CCur(.txtPhone1)
              Sheets("Clientes").Cells(lLinha, 9).Value = CCur(.txtDDD2)
              Sheets("Clientes").Cells(lLinha, 10).Value = CCur(.txtPhone2)
              Sheets("Clientes").Cells(lLinha, 11).Value = CCur(.txtEmail)
              Sheets("Clientes").Cells(lLinha, 12).Value = CCur(.txtmn)
              Sheets("Clientes").Cells(lLinha, 13).Value = CCur(.txtti)
              Sheets("Clientes").Cells(lLinha, 14).Value = CCur(.txtal)
              Sheets("Clientes").Cells(lLinha, 15).Value = .txtcomplemento
              Sheets("Clientes").Cells(lLinha, 16).Value = CDate(.txtDT)
              Sheets("Clientes").Cells(lLinha, 17).Value = .txtIN
              Sheets("Clientes").Cells(lLinha, 18).Value = .txtTR
              
          ''If txtPeso <> "" Then
              Sheets("Clientes").Cells(lLinha, 19).Value = CCur(.txtPeso)
          ''End If
              
              Sheets("Clientes").Cells(lLinha, 20).Value = .txtPecas
                      
          ''If txtPB <> "" Then
              Sheets("Clientes").Cells(lLinha, 21).Value = CCur(.txtPB)
          ''End If
              
          ''If txtPL <> "" Then
              Sheets("Clientes").Cells(lLinha, 22).Value = CCur(.txtPL)
          ''End If
              
          ''If txtDE <> "" Then
              Sheets("Clientes").Cells(lLinha, 23).Value = CDate(.txtDE)
          ''End If
          
              Sheets("Clientes").Cells(lLinha, 24).Value = .txtDS
              Sheets("Clientes").Cells(lLinha, 25).Value = .txtVT
              
          End With
      End Sub
       
       
    • By vbnovak
      Pessoal, tudo bem?
       
      Eu infelizmente sou uma pessoa muito newbie no Access, e extremamente enferrujada no VBA, e eu tenho que criar um banco de dados para importar várias planilhas de Mês/Ano (Ex.: 012018; 022018) sempre do mesmo modelo/molde/afins, e no fim, gerar um relatório com as informações importadas. O modelo relatório e o modelo tabela estão prontos, entretanto, não sei como criar o formulário que faça:
       
      1º: Clicar no botão procurar arquivo;
      2º: Solicite o Mes/Ano do arquivo que será importado;
      3º: Abra a API do Windows de localizar arquivo;
      4º: Ao selecionar e importar o arquivo, dê baixa na tabela definida.
       
      A tabela e o arquivo tem todos as mesmas colunas, entretanto, eu inseri a coluna MesAno na tabela que deverá ser inserida conforme a pergunta que foi solicitada no formulário. Pois o relatório será gerado de acordo com essa coluna.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.