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 não repetir valores em uma consulta com servidor para tabela do Access?

    Novato_access
    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? Empty [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
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como não repetir valores em uma consulta com servidor para tabela do Access? Empty 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
    Novato_access
    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? Empty 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: 23/10/2020, 11:55