MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Compartilhe
    avatar
    Novato_access
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 23/3/2018, 14:19

    Gosgaria muito que alguém me ajudasse pois ainda estou aprendendo, estou com o seguinte problema  Rolling Eyes :


    Tenho uma consulta que é feito por um servidor de uma empresa, consegui fazer módulo de conexão com o servidor, de consulta para buscar os dados que quero e inserir na tabela, porém, está inserindo chamados com a mesma data e hora iguais mais não quero isso.

    Obs: Pode repetir o chamado mais não o chamado e hora.

    Exemplo que não pode ocorrer:
    Chamado: 1111, Data: 23/03/2018 08:00:00
    Chamado: 1111, Data: 23/03/2018 08:00:00

    Exemplo que pode ocorrer:
    Chamado: 1111, Data: 23/03/2018 08:00:00
    Chamado: 1111, Data: 23/03/2018 08:30:00



    Fiz o seguinte código com ajuda de outras pessoas porém não da certo:


    Arrow   '(Antes dessa informação "Do While Not rsADO.EOF" tem a conexão com as informações que desejo buscar sendo que está tudo correto)

    Código:
    Do While Not rsADO.EOF
           
                   Set db = CurrentDb()
                       LocalSQL = "SELECT * FROM [TB_Dados] " & _
                       "WHERE Chamado = " & rsADO!db_chamado & " "   'Nessa linha é para verificar o chamado com a da tabela e do servidor se são iguais
                       Set sr = db.OpenRecordset(LocalSQL)
                       

                       
                        If sr.EOF Then
                           sr.AddNew
                       Else
                           If Format(sr!Criado_em, "dd/mm/yyyy hh:mm") = Format(rsADO("Data-de-Criação"), "dd/mm/yyyy hh:mm") Then   'Nessa linha verificar as informações "dd/mm/yyyy hh:mm" com a do servidor
                               sr.Edit       'Nessa linha informei se tiver com a mesma "dd/mm/yyyy hh:mm" iguais da tabela com servidor somente editar as informações
                           Else
                               sr.AddNew     'Nessa linha informei se tiver diferente da tabela com servidor para adicionar
                           End If
                       
                       End If
                           sr!Chamado = "" & rsADO!Chamado
                           sr!Criado_em = "" & Format(rsADO![Data-de-Criação], "dd/mm/yyyy hh:mm:ss")


    End If
                                                                                             
                           sr.Update
           
                   rsADO.MoveNext
                   db.Close
                   Set sr = Nothing
                   Set db = Nothing
               Loop
               
               
           
           cn.Close
           Set rsADO = Nothing
           Set cn = Nothing
           Exit Sub
           
    End Sub
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 507
    Registrado : 13/12/2016

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Fim em 23/3/2018, 14:37

    Olá novato_access,

    Faça a seguinte alteração na string da query:

    LocalSQL = "SELECT DISTINCT * FROM [TB_Dados] " & _

    Desta forma, seu recordset será carregado somente com dados "DISTINTOS".

    Espero ter ajudado.

    Att,

    Alexandre Fim
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 507
    Registrado : 13/12/2016

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Fim em 23/3/2018, 14:38

    Olá novato_access,

    Faça a seguinte alteração na string da query:

    LocalSQL = "SELECT DISTINCT * FROM [TB_Dados] " & _

    Desta forma, seu recordset será carregado somente com dados "DISTINTOS".

    Espero ter ajudado.

    Att,

    Alexandre Fim
    avatar
    Novato_access
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 23/3/2018, 15:36

    Dessa forma não vai resolver pois tem ocasiões que o chamado deve repetir e a data vai repetir. O que não pode acorrer é o chamado e data repetir.

    Exemplo que não pode ocorrer:
    Chamado: 1111, Data: 23/03/2018 08:00:00
    Chamado: 1111, Data: 23/03/2018 08:00:00

    Exemplo que pode ocorrer:
    Chamado: 1111, Data: 23/03/2018 08:00:00
    Chamado: 1112, Data: 23/03/2018 08:00:00
    Chamado: 1111, Data: 23/03/2018 08:30:00
    Chamado: 1112, Data: 23/03/2018 08:30:00


    Mais agradeço pela sua resposta.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Neves em 25/3/2018, 20:38

    Boa noite,
    Não utilize nomes reservados do Access (no caso, data)
    Não entendi o que pretende
    - quer utilizar a verificação antes de incluir registos, para não duplicar?
    ou
    - quer utilizar código na consulta para não aparecerregistos duplicados?


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 26/3/2018, 11:17

    Bom dia, Alexandre Neves.

    Quero fazer a verificação antes de incluir os registros para não duplicar.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Neves em 27/3/2018, 15:07

    Boa tarde,
    Veja se funciona
    Código:
    Do While Not rsADO.EOF
         
                  Set db = CurrentDb()
                      LocalSQL = "SELECT * FROM [TB_Dados] WHERE Chamado=" & rsADO!db_chamado & " and Criado_em=#" & Format(rsADO![Data-de-Criação], "dd/mm/yyyy hh:mm:ss") & "#"
                      Set sr = db.OpenRecordset(LocalSQL)
                        If sr.EOF Then
                          sr.AddNew
                      Else
                          If Format(sr!Criado_em, "dd/mm/yyyy hh:mm") = Format(rsADO("Data-de-Criação"), "dd/mm/yyyy hh:mm") Then  'Nessa linha verificar as informações "dd/mm/yyyy hh:mm" com a do servidor
                              sr.Edit      'Nessa linha informei se tiver com a mesma "dd/mm/yyyy hh:mm" iguais da tabela com servidor somente editar as informações
                          Else
                              sr.AddNew    'Nessa linha informei se tiver diferente da tabela com servidor para adicionar
                          End If
                      End If
                          sr!Chamado = "" & rsADO!Chamado
                          sr!Criado_em = "" & Format(rsADO![Data-de-Criação], "dd/mm/yyyy hh:mm:ss")
    End If
                          sr.Update
                  rsADO.MoveNext
                  db.Close
                  Set sr = Nothing
                  Set db = Nothing
              Loop
           
          cn.Close
          Set rsADO = Nothing
          Set cn = Nothing
          Exit Sub
         
    End Sub


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 28/3/2018, 13:13

    Não deu certo Crying or Very sad , repetiu todos os bilhetes.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Neves em 30/3/2018, 23:11

    Boa noite,
    Confira os registos, pois parece-me que tinha registos com 1 espaço no final, ou seja, aparentemente parecem iguais "abc" com "abc "
    Reveja contando os duplicados


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 3/4/2018, 14:32

    Bom dia Alexandre,


    Foi confira os registos se tinha iguais "abc" com "abc ", porém não tinha.

    Quando busco as informações do dia 01/04/2018 ao dia 03/04/2018 o mesmo busca as informações corretas, todavia quando busco novamente a do dia 01/04/2018 ao dia 03/04/2018 o mesmo duplica todos os registros que já tinha da primeira vez que tinha buscado.

    Obs: É necessário buscar o mesmo dia somente quando o banco de dados ocorre erro por isso tenho que buscar o mesmo dia para não faltar nenhum registro, esse banco de dados não é fechado mesmo que a empresa feche e é atualizado de 30 e 30 minutos para não faltar nenhuma informação.


    Obrigado por até aqui ter me ajudado.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Neves em 3/4/2018, 20:19

    Boa noite,
    Disponibilize pequeno bd representativo da dúvida


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 6/4/2018, 11:39

    Não tem como disponibilizar pois o arquivo é muito grande mais agradeço por ter me ajudado até aqui.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Alexandre Neves em 6/4/2018, 14:15

    Boa tarde,
    Se não pretende continuar com a dúvida, coloque como Resolvido


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Re: [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access?

    Mensagem  Novato_access em 9/4/2018, 12:31

    .

      Data/hora atual: 16/11/2018, 04:01