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]Como dividir um registro em mais de uma linha em consulta

    avatar
    Websander
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 03/12/2019

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Websander em 2/7/2020, 20:24

    Boa tarde, pessoal do MáximoAccess.

    Estou com um problema no meu banco de dados do Access que não consigo resolver.

    Preciso criar uma consulta que divida um registro em duas linhas. Após muitas pesquisas encontrei um site em inglês
    meadinkent.co.uk/accqueryjournal.htm
    que dá um exemplo muito interessante e resolve o problema em parte.

    Eu consegui dividir os registros em duas linhas, só que a forma como o exemplo do site nos orienta nos impede de poder alterar os dados de qualquer campo quando abrimos a consulta, e eu realmente precisarei em algum momento atualizar um campo ou outro.

    No meu caso, tenho os seguintes campos (Ver imagem em anexo)

    Nome              Data da Ida         Hora de Partida       Hora de Chegada         Data da Volta    Hora de Partida     Hora de Chegada
    Pedro               01/07/20                  09:00                      10:30                      05/07/20              18:00                   19:30  


    Com a divisão em duas linhas, precisa ficar assim:

    Nome                 Data           Hora de partida      Hora de Chegada        
    Pedro               01/07/20            09:00                      10:30
    Pedro               05/07/20            18:00                      19:30


    Por favor, amigos, peço um auxílio de vocês para solucionar esse problema. Se tiverem algum exemplo diferente, será muito bem vindo. Para os usuários isso será muito útil se funcionar.

    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Alexandre Neves em 3/7/2020, 22:37

    Boa noite,
    Refere-se a Access ou Excel?
    Se Access, disponibilize dados para trabalhar, pois os campos não terão estes nomes


    .................................................................................
    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
    Websander
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 03/12/2019

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Websander em 4/7/2020, 00:20

    Olá Alexandre.
    Eu utilizo Access, versão 2010.
    Como posso lhe enviar meu banco de dados para dar uma olhada?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Alexandre Neves em 4/7/2020, 15:07

    Boa tarde
    Carregue aqui no fórum, com dados significativos e o mais reduzido


    .................................................................................
    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
    Websander
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 03/12/2019

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Websander em 4/7/2020, 15:34

    Boa tarde Alexandre.

    Segue aí o meu arquivo. Obrigado.

    Só para lembrar da questão, eu preciso dividir um registro em duas linhas. Na consulta que consegui fazer nesse arquivo anexo, ela divide os registros, mas não me deixa alterar qualquer informação lançada nos campos, e o que eu preciso é que me seja permitido fazer isso.

    Valeu.
    Anexos
    [Resolvido]Como dividir um registro em mais de uma linha em consulta AttachmentViagens.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.8 Mb) Baixado 7 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Alexandre Neves em 4/7/2020, 17:13

    Realmente, a consulta não permite actualizações directas
    SELECT ID, Nome_Pass, Data_IDA AS Data_Viagem, TrechoIDA_1 AS Trecho_Viagem_1, TrechoIDA_2 AS Trecho_Viagem_2, HoraIDA_Partida_Origem AS Hora_Partida, HoraIDA_Chegada_Destino AS Hora_Chegada, Assento_IDA AS Num_Assento, CiaAéreaIDA AS Cia_Aerea, Num_Voo_IDA AS Num_Voos, Cod_Reserva_IDA AS Cod_Reserva, Num_Bilhete_IDA AS Num_Bilhete
    FROM Tab_Principal
    UNION SELECT ID, Nome_Pass, Data_VOL, TrechoVOL_1, TrechoVOL_2, HoraVOL_Partida_Origem, HoraVOL_Chegada_Destino, Assento_VOLTA, CiaAéreaVOLTA, Num_Voo_VOLTA, Cod_Reserva_VOLTA, Num_Bilhete_VOLTA
    FROM Tab_Principal as T2
    ORDER BY Tab_Principal.ID;


    Porque não pensa em manter o registo indiviso e colocar os controlos no form em 2 linhas?
    Teria uma primeira fila com os controlos da primeira linha e numa segunda fila os controlos da 2ª linha
    Esta aparência manteria a separação das linhas e os campos podias ser alterados


    .................................................................................
    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
    Websander
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 03/12/2019

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Websander em 4/7/2020, 18:20

    Alexandre, não dá para colocar os controles em duas linhas no form porque eu preciso colocar tudo em ordem de data quando abrir o formulário contínuo de consulta e atualização.
    Então, por exemplo, se uma pessoa viaja no dia 01/07 e retorna no dia 20/07, eu preciso colocar as datas todas em um mesmo campo para poder colocar as viagens em ordem de data.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Alexandre Neves em 4/7/2020, 19:53

    Poderá construir uma forma de trabalhar os dados na tabela
    1 - Tenha uma tabela (OrigemForm) para alimentar o formulário
    a tabela é alimentada por 2 consultas
    -A cria a tabela e acrescenta as idas
    SELECT 'Ida' AS Tipo, ID, Nome_Pass, Data_IDA AS Data_Viagem, TrechoIDA_1 AS Trecho_Viagem_1, TrechoIDA_2 AS Trecho_Viagem_2, HoraIDA_Partida_Origem AS Hora_Partida, HoraIDA_Chegada_Destino AS Hora_Chegada, Assento_IDA AS Num_Assento, CiaAéreaIDA AS Cia_Aerea, Num_Voo_IDA AS Num_Voos, Cod_Reserva_IDA AS Cod_Reserva, Num_Bilhete_IDA AS Num_Bilhete INTO OrigemForm FROM Tab_Principal;

    -B acrescenta as voltas
    INSERT INTO OrigemForm
    SELECT 'Volta' AS Tipo, ID AS ID, Nome_Pass AS Nome_Pass, Data_VOL AS Data_Viagem, TrechoVOL_1 AS Trecho_Viagem_1, TrechoVOL_2 AS Trecho_Viagem_2, HoraVOL_Partida_Origem AS Hora_Partida, HoraVOL_Chegada_Destino AS Hora_Chegada, Assento_VOLTA AS Num_Assento, CiaAéreaVOLTA AS Cia_Aerea, Num_Voo_VOLTA AS Num_Voos, Cod_Reserva_VOLTA AS Cod_Reserva, Num_Bilhete_VOLTA AS Num_Bilhete FROM Tab_Principal;

    2 - No formulário, exiba os dados como pretende alimentado pela tabela OrigemForm e coloque um controlo invisível no form para colocar o campo Tipo
    3- No acontecimento AoAlterar do campo tenha código para espelhar a alteração na tabela original. Reconhece a alteração através do ID, do Tipo e do campo alterado


    .................................................................................
    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
    Websander
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 03/12/2019

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Websander em 9/7/2020, 12:43

    Caro Alexandre, bom dia.

    Eu fiquei alguns dias tentando fazer o que você sugeriu, mas eu não consegui. Meus conhecimentos ainda são de iniciante.
    De qualquer forma eu acabei aprofundando mais as pesquisas na internet e depois de muitas encontrei um vídeo no YouTube que resolveu o meu problema.
    Tive que criar uma tabela a parte para poder adaptar o código que esse vídeo fornece. (Endereço do vídeo: https://www.youtube.com/watch?v=GjAVGrhH-ME&t=174s).

    Então, para que eu conseguisse dividir um registro em duas linhas, utilizei um formulário ligado a uma tabela principal, nesse formulário tem um botão Salvar que ao ser clicado lança os dados que eu desejo para uma segunda tabela, onde poderemos visualizar o registro dividido e poderemos editar ou atualizar os dados que quisermos.

    Segue abaixo o código desse botão Salvar:

    Private Sub btSalvar_Click()

    Dim rst1 As Recordset
    Dim Sel1 As String
    Dim rst2 As Recordset
    Dim Sel2 As String

    Sel1 = "SELECT * from Tab_LinhasDivididas" 'Esse código lança os dados da ida em uma linha

    Set rst1 = CurrentDb.OpenRecordset(Sel1)

    rst1.AddNew

    rst1![Nome] = Me.Nome_Passaeiro
    rst1![Data_Viagem] = Me.Data_IDA
    rst1![Hora_Viagem] = Me.Hora_Partida_IDA
    rst1![Trecho_Viagem] = Me.Trecho_IDA

    rst1.Update
    rst1.Close



    Sel2 = "SELECT * from Tab_LinhasDivididas" 'Esse código lança os dados da volta em uma outra linha

    Set rst2 = CurrentDb.OpenRecordset(Sel2)

    rst2.AddNew

    rst2![Nome] = Me.Nome_Passaeiro
    rst2![Data_Viagem] = Me.Data_VOLTA
    rst2![Hora_Viagem] = Me.Hora_Partida_VOLTA
    rst2![Trecho_Viagem] = Me.Trecho_VOLTA

    rst2.Update
    rst2.Close


    End Sub



    E, assim, resolvido o problema. Muito obrigado a todos por disponibilizarem o tempo e conhecimento para auxiliar os menos experientes. Abraço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como dividir um registro em mais de uma linha em consulta Empty Re: [Resolvido]Como dividir um registro em mais de uma linha em consulta

    Mensagem  Alexandre Neves em 12/7/2020, 13:42

    Boa tarde
    Ainda bem que resolveu. O caminho é feito de tentativas


    .................................................................................
    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

      Data/hora atual: 22/10/2020, 04:09