MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    avatar
    Venloz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 20/02/2013

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  Venloz 30/8/2017, 15:30

    Pessoal, bom dia!

    Tenho um Banco de dados em Access com uma Consulta que possui os seguintes campos:

    Supervisor
    Nome do Operador
    Data
    Indicador

    Gostaria de obter o resultado dessa consulta no Excel, porém todas elas eu quero colocar um critério de acordo com o que a pessoa filtrar em uma determinada Célula no Excel.

    Ex:

    Supervisor = Plan1.Range("A1")
    Nome do Operador Plan1.Range("B1")
    Data (Aqui seria um Entre Plan1.Range("C1") e Plan1.Range("D1")
    Indicador (Sem Filtro)

    1 opção seria eu deixar a consulta toda sem critério vinculada ao Excel e criar uma macro para filtrar no próprio Excel, porém a consulta possui muitas linhas, por isso gostaria de trazer apenas o resultado de acordo com o filtro no Excel, pois minha consulta no Access já ira calcular tudo o que eu preciso.

    Imagino que terei que criar um código no Excel para fazer a conexao com Access e executar essa consulta com esses critérios para obter o resultado, porém não faço ideia de como fazer isso.

    Desde já agradeço.

    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4718
    Registrado : 20/04/2011

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty Re: [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  Silvio 30/8/2017, 17:58

    Boa tarde.
    Melhor procurar um fórum do Ms Excel, vai ser mais fácil.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7871
    Registrado : 05/11/2009

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty Re: [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  Alexandre Neves 30/8/2017, 18:09

    Boa tarde,
    Por se tratar de Excel, movi-lhe para esta sala (se acompanhasse o fórum já teria reparado que é nesta sala que se trata assuntos extra-access)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Venloz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 20/02/2013

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty Re: [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  Venloz 30/8/2017, 18:16

    Alexandre

    Fiquei com Dúvida se deveria postar em outro tipico, porque o principal é saber como fazer a conexão com o Access, por mais que seja via Excel

    Desculpe.
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 23/01/2017

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty Re: [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  thiagomcosta 30/8/2017, 20:13

    Veja se te atende:
    No Excel vai em "Dados", em "Obter Dados Externos" escolhe "Access" e vincula os dados.
    avatar
    Venloz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 20/02/2013

    [Resolvido]Executar Consulta Com Critério Access Pelo Excel Empty Re: [Resolvido]Executar Consulta Com Critério Access Pelo Excel

    Mensagem  Venloz 31/8/2017, 01:51

    thiagomcosta

    Não quero fazer dessa forma porque a consulta sem filtro retornaria muitas linhas o que faria meu Excel ficar sobrecarregado, porém já consegui com um amigo e vou postar o Código para quem quiser utilizar:

    Obs. No Campo "Indicadores" acrescenteu a fórmula para fazer a Soma

    1º Habilitar a biblioteca "Microsoft Office 15.0 Access database engine Object Library", para isso clique em Ferramentas, Referências e procure esse nome

    2º Colar o Código abaixo que irei explicar detalhadamente


    Código:
    Public Sub Conexao_Access()
    Dim StrQuery As String, StrCaminho As String
    Dim I As Integer, L As Integer
    Dim DB As Database
    Dim RS As Recordset
    Dim ws As Worksheet
    Dim Obj As Object
    Dim strSupervisor As String
    Dim strOperador As String
    Dim strData_Inicial As String
    Dim strData_Final As String

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.Calculation = xlCalculationManual

    strSupervisor = Sheets("Indicadores").Range("A1") 'Filtro que a pessoa ira fazer para escolher o supervisor
    strOperador = Sheets("Indicadores").Range("B1") 'Filtro que a pessoa ira fazer para escolher o operador
    strData_Inicial = Sheets("Indicadores").Range("C1") 'Filtro que a pessoa ira fazer para escolher a data inicial
    strData_Final = Sheets("Indicadores").Range("D1") ''Filtro que a pessoa ira fazer para escolher a data final


    Set ws = ThisWorkbook.Worksheets("Indicadores") ' nome da sheets que irá receber os valores

    StrCaminho = "Caminho\Nome_do_arquivo.accdb" ' caminho onde esta o arquivo
    Set DB = OpenDatabase(StrCaminho, False, False)

    ' As 4 Variaveis abaixo servem para escrever o código para criar uma consulta da forma que você desejar,
    'você irá escrever nelas a mesma coisa que escreveria no Access para criar uma consulta diretamente pelo Access,
    'porém agrupado com algumas variavéis definidas acima

    StrQuery = " SELECT [Nome do Operador] , Supervisor, Data, AVG(Indicador) as Resultado"
    StrQuery = StrQuery & " From tbl_Base"
    StrQuery = StrQuery & " WHERE [Nome do Operador] = '" & strOperador & "' And Supervisor = '" & strSupervisor & "' And Data Between  # " & strData_Inicial & " #  And # " & strData_Final & " # "
    StrQuery = StrQuery & "Group By [Nome do Operador], Supervisor, Data"

    Set RS = DB.OpenRecordset(StrQuery)



    'Abaixo o código irá retornar as colunas informadas acima na linha 7 e formatar as Células (a formatação fica a seu critério)

                For I = 0 To RS.Fields.Count - 1
                      With ws.Cells(1 + 6, I + 2)
                        .Value = RS.Fields(I).Name
                        .Interior.Color = RGB(219, 239, 243)
                        .Font.Color = RGB(33, 88, 103)
                        .Font.Bold = True
                        .Font.Size = 8
                        .HorizontalAlignment = xlCenter
                    End With

                Next I

              L = 8
               
    'Abaixo o código ira retornar as linhas das colunas informadas a cima a partir da linha 8 e formatar as Células (a formatação fica a seu critério)

                Do Until RS.EOF

                      For I = 0 To RS.Fields.Count - 1
                        Debug.Print I
                            With ws.Cells(L, I + 2)
                                  If RS(I) <> "" Then
                                        .Value = RS(I)
                                  End If
                                  '.NumberFormat = formatacao(RS.Fields(I).Name)(1)
                                  Cells.EntireColumn.AutoFit
                            End With
                      Next I

                    L = L + 1

                    RS.MoveNext
                Loop

                RS.Close
               
               
                Set RS = Nothing

                With ws.Range(Cells(7, 2), Cells(L - 1, I + 1))
                    .HorizontalAlignment = xlHAlignRight
                    .Font.Color = RGB(33, 88, 103)
                    .Borders.Color = RGB(191, 191, 191)
                    .Borders.LineStyle = xlContinuous
                    .Borders.Weight = xlHairline
                    .HorizontalAlignment = xlCenter
                End With


    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.Calculation = xlCalculationAutomatic

    End Sub

    Espero ter ajudado quem também precisa utilizar esse formato, enquanto eu não tiver a liberação para utilizar o SQL e Criar minhas Webstations Via PHP terei terei que utilizar dessa forma.

    Tópico Resolvido.

      Data/hora atual: 4/3/2021, 16:04