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


5 participantes

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 9/11/2015, 09:10

    Olá,

    Criei um formulário que exige confiabilidade de informações, então precisei criar um código que evitasse o cadastro duplicado contendo 3 critérios.
    Na primeira tentativa funcionou, mas quando obtive mais registros na minha tabela, o código não analisa mais nenhuma informação da tabela, somente a primeira que fiz o teste.

    Ao final coloquei que o registro dessa duplicidade abrisse para usuario analisar.

    Alguém tem uma sugestão de um código mais preciso que me ajude?


    If DCount("*", "tblRegistrosSS", "DataInicial=#" & TxtData & "# and TagEquip='" & TxtEquip.Column(1) & "' and TPM='" & tlSource.Column(1) & "'") > 0 Then

    MsgBox "Registro já lançado..." & "Código Nº" & Código

    Cancel = True 'cancela o evento.

    Me!TxtEquip.Undo
    Me!TxtData.Undo
    Me!tlSource.Undo 'desfaz a digitação.

    Dim stDocname As String
    Dim stLinkCriteria As String

    stDocname = "tblRegistrosSS"

    stLinkCriteria = Código
    DoCmd.OpenForm stDocname, , , stLinkCriteria
    End If
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 9/11/2015, 09:50

    Olá Fabricia

    Teu código:

    If DCount("*", "tblRegistrosSS", "DataInicial=#" & TxtData & "# and TagEquip='" & TxtEquip.Column(1) & "' and TPM='" & tlSource.Column(1) & "'") > 0 Then

    Para podermos analisar teu código, precisa dar o nome aos bois. Razz

    Diga-nos o que é:
    TagEquip.Colomun(1) - Caixa de combinação, caixa de listagem, quantas colunas, dados de cada coluna.
    Idem para a tlSource.Column(1).

    O código abaixo, é o que está usando?

    Se sim, veja:


    If DCount("*", "tblRegistrosSS", "DataInicial=#" & TxtData & "# and TagEquip='" & TxtEquip.Column(1) & "' and TPM='" & tlSource.Column(1) & "'") > 0 Then

       MsgBox "Registro já lançado..." & "Código Nº" & Código

       Cancel = True 'cancela o evento.
    Else
       Me!TxtEquip.Undo
       Me!TxtData.Undo
       Me!tlSource.Undo 'desfaz a digitação.
       stLinkCriteria As String

       stLinkCriteria = Código
       DoCmd.OpenForm  "tblRegistrosSS", , , stLinkCriteria
    End If


    Compare com o teu.

    Outro detalhe:

    Utiliza-se Cancel=true quando a sub tem o cancel no argumento.
    Exemplo:

    Private Sub Form_Open(Cancel As Integer)
    If DCount("*", "tblAdicionarOrcamento") = 0 Then
       MsgBox " Não existem registros a serem exibidos"
       Cancel = True
    End If
    End Sub

    Se o argumento cancel não estiver entre os parênteses,
    utilize: Exit Sub


    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Cláudio Más 10/11/2015, 02:53

    Uma alternativa é criar um índice composto pelos três campos na estrutura da tabela, definindo-o como exclusivo.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 10/11/2015, 03:43

    Obrigado colega Noobezinho pela dica, ele funcionou na busca de duplicidade perfeitamente.

    Mais ainda assim não filtrou meu registro no formulário de acordo com o codigo encontrado na busca da duplicidade no DCount.

    Eu preciso que Nº do Código apareça na msgbox e execute o filtro.


    MsgBox "Registro já lançado..." & "Código Nº" & Código

    stLinkCriteria = Código

    DoCmd.OpenForm "tblRegistrosSS", , , stLinkCriteria
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 10/11/2015, 10:24

    Por experiência, sugiro que não coloque
    essa caixa de mensagem.
    É um clique que o usuário irá fazer sem
    necessidade, pois logo em seguida o formulário
    irá abrir no registro

    Para abrir o form. no registro:

    DoCmd.OpenForm "tblRegistrosSS", , , "[Código]= " & Me.Código

    Onde: [Código] = nome do campo na tabela

    Me.Código = nome da caixa de texto

    Se está começando a programar, outra dica:
    Evite utilizar espaços e acentos em nomes de controles.
    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  JPaulo 11/11/2015, 16:22

    Ola;

    Na minha assinatura, o link "102 Códigos VBA Gratuitos..."

    Código:
    "Alerta e Mostra Registos Duplicados"


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Folder_announce_new Instruções SQL como utilizar...
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 13/11/2015, 10:20

    Fabrícia

    Resolveu?


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 13/11/2015, 10:52

    Não pessoal, tive dificuldades de entender o código, pois na minha BD são três criterios de busca.


    vou disponibilizar a BD, se conseguem me ajudar.


    O formulario é Registros no botão Adicionar(+) entra no formulario de adição de novo registro, preciso que ao sair do Campo Itens, informe se existe dados cadastrados nos três critérios:

    Tabela(tblRegistrosSS) Formulário(FCad)
    *DataInicial TxtData
    *TagEquip TxtEquip
    *TPM tlSource


    E ao final abra o form "tblRegistrosSS" filtrado com o item duplicado.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 13/11/2015, 10:56

    Fabrícia

    Não veio

    Utilize o get.tt

    Não precisa cadastrar para hospedar o arquivo.

    Como é publico, sugiro que coloque senha no arquivo.rar.

    Anexos do fórum, não estão funfando.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 13/11/2015, 18:23

    Não consegui enviar minha BD.

    Mas preciso necesseriamente do código que utilize os 3 criterios e abra a form a partir deles.
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Lupércio 13/11/2015, 19:38

    Veja o código do J Paulo adapte a sua necessidade.

    Private Sub Form_Close()
    On Error Resume Next
    Dim db As DAO.Database, rst As DAO.Recordset
    Dim strNome As String, strSaveName As String
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("select * from nomedatabela order by campo1, campo2, campo3 ASC;")
    If rst.BOF And rst.EOF Then
    MsgBox "Não existem registros..."
    Else
    rst.MoveFirst
    Do Until rst.EOF
    strDupName = rst.Fields("campo1") & rst.Fields("campo2") & rst.Fields("campo3")
    If strDupName = strSaveName Then
    rst.Delete
    Else
    strSaveName = rst.Fields("campo1") & rst.Fields("campo2") & rst.Fields("campo3")
    End If
    rst.MoveNext
    Loop
    Set rst = Nothing
    Set db = Nothing
    End If
    End Sub


    .................................................................................
    Quando tua dúvida for resolvida, de o retorno de agradecimento á aqueles que gastaram seu tempo para te ajudar.
    Clique no botão “Resolvido” logo acima do botão “Enviar” ao lado direito. Todos nós agradecemos.lol!Rolling Eyes
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 15/11/2015, 13:43

    Não resolveu amigo, pois o formulário em questão não está vinculado a tabela, somente envia as informações para a tabela atraves de um botão.


    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 15/11/2015, 14:23

    Fabricia

    use o get.tt como disse.

    Compacte o teu arquivo, dai é só clicar e arrastar pra página dele.


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 17/11/2015, 02:14

    Nada resolvido, amigo .Noobezinho não consigo enviar o arquivo.


    Pessoal, quanto dúvida, ela continua, pois meu formulario não está vinculado a tabela e preciso identificar duplicidade com 3 critérios e ao memso tempo abrir outra form com registro em questão.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Noobezinho 17/11/2015, 09:57

    Fabricia

    O get está com problemas.

    Utilize o mega, dropbox ou o MEO Cloud

    Nesses, precisa se cadastrar antes

    de hospedar o arquivo.

    Aguardamos...


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Fabrícia Lima 22/11/2015, 21:01

    Lupercio Consegui adaptar seu codigo.
    obrigado pessoal!

    On Error Resume Next
    Dim db As DAO.Database, rst As DAO.Recordset
    Dim strNome As String, strSaveName As String
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("select * from tblRegistrosSS order by DataInicial, TagEquip, TPM ASC;")
    If rst.BOF And rst.EOF Then

    Else
    rst.MoveFirst
    Do Until rst.EOF
    strDupName = rst.Fields("DataInicial") & rst.Fields("TagEquip") & rst.Fields("TPM")

    If strDupName = strSaveName Then
    rst.Delete


    Else
    strSaveName = rst.Fields("DataInicial") & rst.Fields("TagEquip") & rst.Fields("TPM")
    End If
    rst.MoveNext
    Loop
    Set rst = Nothing
    Set db = Nothing
    End If

    Conteúdo patrocinado


    [Resolvido]Duplicidade Registros - Usando DCount com vários critérios Empty Re: [Resolvido]Duplicidade Registros - Usando DCount com vários critérios

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 15:30