MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


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.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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]Instrução PIVOT botão consulta

    avatar
    ictsp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 02/09/2016

    [Resolvido]Instrução  PIVOT  botão consulta Empty [Resolvido]Instrução PIVOT botão consulta

    Mensagem  ictsp 30/3/2017, 17:22

    Boa tarde amigos! Tenho uma consulta de referencia cruzada conforme imagem abaixo. Quando abro ela sem o filtro do form, ela abre normalmente, mostrando todas as colunas corretamente (no caso, 7)

    Porém, quando realizo a filtragem através do formulário, as colunas somem e a tabela que determina o titulo das colunas muda.

    Pelo que estou percebendo, o erro está no código do botão, mas como é a primeira vez que utilizo esse recurso, não consigo corrigir o mesmo.

    Estrutura da consulta antes de realizar a filtragem:


    [Resolvido]Instrução  PIVOT  botão consulta Cons110

    SQL consulta antes filtragem
    Código:

    TRANSFORM First(DETORC.prel) AS PrimeiroDeprel
    SELECT DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc
    FROM TIPO INNER JOIN (CADORÇ INNER JOIN DETORC ON CADORÇ.loc = DETORC.LOC) ON TIPO.TIPO = DETORC.TIPO
    GROUP BY CADORÇ.Loc, DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc
    PIVOT TIPO.TIPO;


    Depois que realizo a filtragem:
    [Resolvido]Instrução  PIVOT  botão consulta Cons210

    SQL da consulta depois filtragem:

    Código:

    TRANSFORM First(DETORC.prel) AS PrimeiroDeprel
    SELECT DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc
    FROM CADORÇ INNER JOIN DETORC ON CADORÇ.loc = DETORC.LOC
    WHERE CADORÇ.loc =652
    GROUP BY CADORÇ.Loc, DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc
    PIVOT detorc.TIPO;


    código que utilizo no botão do form:

    Código:

    Private Sub fncMontaFiltroRefCruzada()

    Dim qry As QueryDef
    Dim strSql As String
    Set qry = CurrentDb.QueryDefs("refcruz")
    strSql = "TRANSFORM First(DETORC.prel) AS PrimeiroDeprel "
    strSql = strSql & "SELECT DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc FROM CADORÇ INNER JOIN DETORC ON CADORÇ.loc = DETORC.LOC   "
    strSql = strSql & " WHERE  CADORÇ.loc =" & Me!frt 'campo do form que uso para filtragem
    strSql = strSql & " GROUP BY CADORÇ.Loc, DETORC.PROD, DETORC.BITOLA, DETORC.COMP, DETORC.POS, DETORC.COTA, DETORC.MED, CADORÇ.Loc"

    strSql = strSql & " PIVOT  detorc.TIPO "
    qry.sql = strSql
    Set qry = Nothing


    End Sub

    Desde já, agradeço imensamente a ajuda dos colegas. Usei como referência esse link do Avelino Sampaio

    http://www.redeaccess.com.br/viewtopic.php?t=914
    avatar
    ictsp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 02/09/2016

    [Resolvido]Instrução  PIVOT  botão consulta Empty Re: [Resolvido]Instrução PIVOT botão consulta

    Mensagem  ictsp 1/4/2017, 23:29

    Boa noite Srs! Depois de muita luta resolvi meu problema kkk. O fato das colunas sumirem, a princípio, implicava na geração do relatório ( no meu entendimento). Porém, pesquisando na net, achei o código abaixo que gera o relatório apenas com as colunas disponiveis na consulta realizada:

    Código:

    Private Sub Report_Open(cancel As Integer)
    Dim k%, j%
    On Error Resume Next
    k = CurrentDb.QueryDefs("refcruz").Fields.Count - 7
    If k > 7 Then
        MsgBox "Relatório não suporta mais de 6 colunas..."
        Exit Sub
    End If
    For j = 1 To k
        Me("tx" & j).ControlSource = CurrentDb.QueryDefs("refcruz").Fields(6 + j).name
        Me("rot" & j).Caption = CurrentDb.QueryDefs("refcruz").Fields(6 + j).name
    Next

    For j = (k + 1) To 7
        Me("tx" & j).Visible = False
        Me("rot" & j).Visible = False
    Next
    End Sub


      Data/hora atual: 19/5/2024, 17:39