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]Converter tabelas com colunas vertical em horizontal

    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 15:20

    Grande Mestres, bom dia.

    Estou aqui novamente com mais uma pendência. No código da função abaixo, bem simples, não estou conseguindo ver de onde vem o erro: "Erro gerado: 3061 - Parâmetros insuficientes. Eram esperados 1". Acho que é na definição do rs1 TbNomeMes (tem dois campos: mes e nome). Por exemplo: faço NomeMes = "Janeiro" e enviou para função Call ProcessaMes(NomeMes). Quero gravar na tabela TbNomeMesHorizontal todos os "nome" daquele mês que vem da tabela TbNomeMes. Onde foi que eu errei?

    Código:
    Function ProcessaMes(NomeMes)
    On Error GoTo trata_erro
    MsgBox NomeMes
    Dim DB As Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Set DB = CurrentDb()
    Set rs1 = DB.OpenRecordset("SELECT * FROM [TbMesNome] WHERE Mes = NomeMes")
    Set rs2 = DB.OpenRecordset("SELECT * FROM [TbMesNomeHorizontal]")

    rs1.MoveFirst

    Do While Not rs1.EOF
      rs2.AddNew
      rs2![NomeMes] = rs1![Nome]
     
      rs2.Update
      rs2.Requery
    rs1.MoveNext
    Loop

    rs1.Close
    Set rs1 = Nothing
    rs2.Close
    Set rs2 = Nothing
    DB.Close
    Set DB = Nothing

        Exit Function

    trata_erro:
       
       MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
       
       Exit Function

    End Function


    Última edição por Finformática em 3/6/2020, 23:01, editado 1 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 25/5/2020, 17:09

    Tire a variável nomemes do entre aspas. Do contrário o VBA nunca a interprerá.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 17:36

    Grande Damasceno,

    Desculpe a minha ignorância, onde está NomeMes entre aspas? Aspas após a variável é do Select.

    Abraços
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 25/5/2020, 19:52

    Aqui está a variável contida entre aspas
    “... NomeMes”

    Tudo entre aspas é interpretado como um “bloco” inteiro. Nesse caso o VBA nao lê o valor da variável, mas sim o nome dela.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 20:11

    Então como ficaria a linha do recordset com o Select? Tiro as aspas fica dando erro no select.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 25/5/2020, 20:36

    Por que tiraste tudo? O único termo que precisa de interpretação é a variável. Afinal, ela é a única coisa que varia.
    "SELECT * FROM [TbMesNome] WHERE Mes = " & NomeMes


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 20:52

    Caro Amigo,

    Desculpas por tanto incomodar. Continua dando mesmo erro. Linha abaixo.

    Set rs1 = DB.OpenRecordset("Select * From [TbMesNome] where Mes = " & NomeMes)

    O conteúdo de NomeMes eu vejo correto. Parece que não está reconhecendo Mes que é da TbMesNome. Ambas as variáveis são tipo texto.

    Abraços
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 25/5/2020, 21:01

    Confere na tabela se tem campo com esse nome.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 21:12

    TbMesNome:
    Mes texto
    Nome texto

    TbMesNomeHorizontal:
    Janeiro texto
    Fevereiro text
    .
    .
    .
    Dezembro texto

    Nomes dos campos são os nomes dos meses.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 25/5/2020, 21:21

    Melhor postar seu arquivo. Assim evitamos adivinhações.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Alexandre Neves em 25/5/2020, 22:28

    Boa noite
    Ou será Set rs1 = DB.OpenRecordset("Select * From [TbMesNome] where Mes='" & NomeMes &"'")


    .................................................................................
    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
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 22:42

    Olá Damasceno,

    Segue anexo só a parte envolvida no problema.

    Muito Grato.
    Anexos
    [Resolvido]Converter tabelas com colunas vertical em horizontal AttachmentConverte Tabela ZIP.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (41 Kb) Baixado 5 vez(es)
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 22:55

    Grande Alexandre,

    Fiz a alteração que você sugeriu e deu:
    Erro gerado: 3265 - Item não encontrado nesta coleção
    Erro gerado: 3021 - Nenhum registro atual

    Muito grato

    Abraços
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 25/5/2020, 23:15

    Olá..

    Além da alteração solicitada pelo Alexandre Neves,
    Comente o 'rs1.MoveFirst

    Abraços e sucesso


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 23:23

    Grande Celso,

    Desculpas por minhas besteiras, sou um mero aprendiz. Isso faz parte das tentativas para ver se fica certo. Tirei a linha e continua dando: Erro gerado 3265 - Item não encontrado nesta coleção.

    Abraços
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 367
    Registrado : 25/02/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  FranklinJSP em 25/5/2020, 23:32

    Olá

    É só remover o tratamento de erros de "processames".
    Em anexo...

    Saludos


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 25/5/2020, 23:35

    Olá..

    Desculpe, seria assim

    Set rs1 = db.OpenRecordset("SELECT * FROM [TbMesNome] where Mes = "" & NomeMes & """)

    e Comente o 'rs1.MoveFirst

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 25/5/2020, 23:41

    Mestre Franklin,

    Realmente tirando aquelas linhas não deu erro, porém não gravou a tabela desejada.

    Muito grato.

    Abraços.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 26/5/2020, 00:17

    Caros Amigos,

    Tirei as linhas de tratamento de erro. Tirei rs1.MoveFirst. Troquei linha para sugestão de Alexandre. Troquei para linha sugerida por Celso. Não aparece erro, no entanto não grava nada. Não entra do Do While, ou tenta e o rs1 não carregou nada e sai por fim de arquivo.
    Enfim, não dá erro, também não faz nada.

    Abraços
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 367
    Registrado : 25/02/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  FranklinJSP em 26/5/2020, 00:36

    Boa noite!

    Espero que seja o que você precisa.

    Saludos


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 26/5/2020, 00:50

    Grande Franklin,

    É quase isso. Só que queria pegar todos os meses de uma só vez sem precisar está informando qual. Também essa tabela criada é temporária. Desse modo toda vez que executo, apaga a tabela, cria novamente e só ficar um mês. Dela vai para outros processos. Esses são dados fictícios e não são somente esses campos. Funcionando para dois campos, deverá funcionar para muitos.

    Muito grato.

    Grande Abraço.
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 367
    Registrado : 25/02/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  FranklinJSP em 26/5/2020, 00:56

    Que bom!

    Conseguimos fazer alguma coisa, penso que será tentar mais código para o que precisa.
    Estamos aqui para continuar a nossa colaboração...

    Saludos


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  DamascenoJr. em 26/5/2020, 02:24

    lol!

    Bem observado, Alexandre. Havia esquecido das aspas.

    Finformática, evite usar campos com palavras reservadas. Campos chamados "Nome" e "Mes" podem atrapalhar seu projeto.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 26/5/2020, 11:59

    Grandes Mestres,

    O professor Franklin fez um outro código que, com certeza, com algumas adaptações, alguns reajustes, irão resolver o problema. Disso não tenho a menor dúvida. Desde já lhe sou muito grato, muito grato mesmo. No entanto queria ver como faria funcionar no modelo anterior. A critério de aprendizado, conhecimento. Uma coisa aparentemente tão simples que me deixou intrigado e gostaria de ver onde está o erro. São essas picuinhas (abre aspas, fecha aspas, aspas duplas, concatenação, etc.) que me apego para aprender um pouco mais e não ficar constantemente dependendo de vocês.
    Muito grato pelas observações de Damasceno, as sugestões de Celso e Alexandre. Muito obrigado mesmo.
    Seria possível fazermos o primeiro código funcionar para saber onde está o erro?

    Muito obrigado.

    Abraços
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 27/5/2020, 21:54

    Olá Mestres,

    Alguém pode ajudar a concluir esse tópico conforme descrito mensagem anterior?
    Muito grato.

    Abraços
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 27/5/2020, 22:55

    Olá...

    Veja se este tópico ajuda, em especial a mensagem 5

    https://www.maximoaccess.com/t24892-resolvidotrocar-colunas-por-linhas-sql-access#177836

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 27/5/2020, 23:31

    Grande Celso,

    Muito grato pelo seu interesse nesse meu tópico. Vi o link e vou estudá-lo. Vou tentar fazer meu problema também desse modo. É questão de aprendizado. Na realidade, com ajuda de todos vocês, já consegui resolver o problema. Peguei aqui um código, fiz as devidas adaptações e fez o que desejo. No entanto continuo curioso com o código inicial de todos. Como já mencionei, quero aprender. Uma coisa aparentemente tão simples e não consigo ver o erro. Já recebi várias sugestões de vocês e ainda não funcionou. Tem como me dá mais essa aula?

    Muito grato,

    Abraços
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 28/5/2020, 02:53

    Olá...

    Dei uma modificada no código do Amigo FranklinJSP.
    Pode eliminar a combobox

    Código:
    Dim sMeses(1 To 12) As String
        Dim i As Integer
        Dim midb As Database
        Dim misql As String
        Dim Mes

        sMeses(1) = "Janeiro"
        sMeses(2) = "Fevereiro"
        sMeses(3) = "Março"
        sMeses(4) = "Abril"
        sMeses(5) = "Maio"
        sMeses(6) = "Junho"
        sMeses(7) = "Julho"
        sMeses(Cool = "Agosto"
        sMeses(9) = "Setembro"
        sMeses(10) = "Outubro"
        sMeses(11) = "Novembro"
        sMeses(12) = "Dezembro"

       
       
       
        Set midb = CurrentDb()
       
        'DoCmd.SetWarnings False
           
       
        For i = 1 To 12
            'MsgBox sMeses(i)
            Mes = sMeses(i)
           
                misql = "INSERT INTO TbMesNomeHorizontal (" & [Mes] & ") " & _
                "SELECT Nome " & _
                "FROM TbMesNome " & _
                "WHERE Mes='" & Mes & "' "

        midb.Execute misql
           
        Next

         
       
    '***************************************************************************
    Faça teste e veja que vai ficar faltando pouco para concluir

    Aguardamos

    Abraços e sucesso



    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 28/5/2020, 17:12

    Caro Amigo,

    Conforme lhe falei, foi exatamente esse código que adaptei e consegui o resultado desejado. Mas minha curiosidade continua sendo aquele código bem simples que não conseguimos fazer funcionar lá no começo.
    Muito agradecido pela sua atenção. Continuo curioso pelo código.

    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Alexandre Neves em 31/5/2020, 14:34

    Boa tarde
    Depois de tantas voltas, não enxergo a bd que suporta a dúvida.
    Pode restabelecer a dúvida completa com a bd correspondente?


    .................................................................................
    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
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 1/6/2020, 15:21

    Grande Alexandre,

    Conforme solicitado segue anexo o BD mais original de todos, o que gerou o tópico. Recebi várias sugestões, fiz diversas adaptações neste código e até agora não funcionou. Inclusive você também sugeriu e continua dando erro. Quero ver onde está o erro para aprender. Isso é como um desafio. Já tentei tudo e não consigo em um código tão simples. Lembrando que, com ajuda de vocês e com outro código bem diferentes, com adaptações e tal faz o desejado. Mas meu problema é como faria para funcionar esse primeiro código.
    Espero que tenha entendido.

    Grande abraço
    Anexos
    [Resolvido]Converter tabelas com colunas vertical em horizontal AttachmentConverte Tabela ZIP.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (41 Kb) Baixado 5 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Alexandre Neves em 1/6/2020, 22:08

    Boa noite, Finformática
    Pedi para restabelecer dúvida completa. Escreveu tanto e nada sobre o problema que queria resolver. Reconstruí a dúvida a partir do início e parece que descobri a sua pretensão

    Código:
    Function ProcessaMes(NomeMes)
        On Error GoTo trata_erro
        Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
     
        Set rs1 = CurrentDb.OpenRecordset("SELECT * FROM [TbMesNome] where Mes='" & NomeMes & "'")
        Set rs2 = CurrentDb.OpenRecordset("SELECT * FROM [TbMesNomeHorizontal]")
        Do While Not rs1.EOF
            rs2.AddNew
            rs2(NomeMes) = rs1![Nome]
            rs2.Update
            rs1.MoveNext
        Loop

        rs1.Close
        Set rs1 = Nothing
        rs2.Close
        Set rs2 = Nothing

        Exit Function

    trata_erro:
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
    End Function


    .................................................................................
    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
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 1/6/2020, 23:07

    Grande Mestre,

    O grande problema era a linha: Set rs1 = CurrentDb.OpenRecordset("SELECT * FROM [TbMesNome] where Mes='" & NomeMes & "'") que dava erro 3021, depois outros código de erros e não funcionava. Você agora fez de um outro modo, bem parecido e funcionou. Ainda insisto onde é o erro dessa linha citada?
    Quase como eu queria. Só que queria que gravasse tudo de cada mês começando no primeiro registro da tabela horizontal.
    Ex.:
    Janeiro---Fevereiro--Março................................................Dezembro
    João------Manoel-----Antônio
    Paulinho-Cândido----Eliane
    José------Maria-------Tavares
    -----------Felipe-------Filomena
    ------------------------Caetano
    ------------------------Márcio
    ------------------------Ernesta

    Muito grato

    Abraços
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 2/6/2020, 03:29

    Olá..

    Para que todos os meses seja adicionado, comente o EXIT SUB desta parte deste código abaixo

    Código:
    Dim NomeMes As String
        'NomeMes = ""
        NomeMes = Me.Mes
           
            NomeMes = "Janeiro"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Fevereiro"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Março"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Abril"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Maio"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Junho"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Julho"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Agosto"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Setembro"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Outubro"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Novembro"
                Call ProcessaMes(NomeMes)
                'Exit Sub
            NomeMes = "Dezembro"
                Call ProcessaMes(NomeMes)
                'Exit Sub



    Espero que ajude

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 2/6/2020, 03:41

    Olá..

    Deixo outra possibilidade para quem buscar por uma consulta para realizar esta tarefa, segue a SQL abaixo:

    Ao Gerar a consulta Oculte o campo "Mes"

    Código:
    TRANSFORM First([Nome]) AS FirstNome
    SELECT Mes
    FROM (SELECT t1.Mes, t1.Nome, 'Mes' & Format(COUNT(*),"00") AS Meses FROM TbMesNome AS t1 INNER JOIN TbMesNome AS t2 ON (t1.Nome>=t2.Nome) AND (t1.Mes=t2.Mes) GROUP BY t1.Mes, t1.Nome) 
    GROUP BY Meses
    PIVOT Mes;

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 3/6/2020, 02:32

    Mestre Celso,

    Funcionou perfeitamente. Algumas adaptações e tudo certo. Agora uma dúvida, o que é:  [%$##@_Alias] . Sou um eterno aprendiz, não quero só ver feito, quero aprender a fazer.
    Muito grato por tudo. Decifra o campo solicitado anteriormente. Por favor.

    Grande Abraço
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 3/6/2020, 22:57

    Olá meu amigo...

    Obrigado pelo "Mestre Celso" mas não sou não, sou um eterno aprendiz.
    Mas neste Fórum existem vários mestres e aprendo muito com as soluções apresentadas por eles nos tópicos que participam.



    Este "[%$##@_Alias]", é o nome que a SQL deu para a subconsulta por eu ter esquecido de Renomear.

    Podemos renomear usando o alias de tabela, veja abaixo que dei o nome de "qryHorizontal"

    Código:
    TRANSFORM First([Nome]) AS FirstNome
    SELECT Mes
    FROM (SELECT t1.Mes, t1.Nome, 'Mes' & Format(COUNT(*),"00") AS Meses FROM TbMesNome AS t1 INNER JOIN TbMesNome AS t2 ON (t1.Mes=t2.Mes) AND (t1.Nome>=t2.Nome) GROUP BY t1.Mes, t1.Nome)  AS qryHorizontal
    GROUP BY Meses
    PIVOT Mes;


    Será que não seria ideal alterar o titulo do tópico acrescentando "criar tabelas ou converter tabelas com colunas vertical em horizontal"?

    Acredito que facilitaria para usuários que busca uma solução identica ou semelhante.
    Fica a sugestão.

    Estando tudo ok, finalize o tópico.

    Abraços e sucesso




    Última edição por Celso Roberto em 3/6/2020, 23:16, editado 1 vez(es)


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Finformática em 3/6/2020, 23:04

    Mestre,

    Aceitando sua sugestão modifiquei o título do tópico. Realmente fica mais explícito para quem necessitar fazer o mesmo.
    Muito obrigado por tudo.

    Grande abraço, Grande Mestre.

    Resolvido

    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Converter tabelas com colunas vertical em horizontal Empty Re: [Resolvido]Converter tabelas com colunas vertical em horizontal

    Mensagem  Celso Roberto em 3/6/2020, 23:18


    Ficamos felizes por ter ajudado.

    Obrigado pelo retorno

    Abraços e sucesso


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

      Data/hora atual: 15/8/2020, 05:06