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]Criar índice por atributo

    avatar
    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    [Resolvido]Criar índice por atributo Empty [Resolvido]Criar índice por atributo

    Mensagem  Marcio2501 em 25/6/2018, 16:36

    Pessoal, boa tarde

    Pesquisei e não achei nada aqui. Preciso criar um índice por um determinado atributo (CPF), devido ter vários CPF´s repetidos preciso que criar um índice no formato abaixo (pode ser tanto Access ou SQL).


    INDICE CPF idAtendimento DataFimAtendimento
    1 00000352896 1403364 2018-05-21 11:53:04.950
    2 00000352896 1404435 2018-05-21 12:54:47.323
    1 00003153703 1233359 2018-01-14 13:08:02.000
    2 00003153703 970922 2018-02-14 00:00:59.000
    3 00003153703 955830 2018-03-26 21:25:56.000
    1 00003572862 1023512 2018-05-05 12:19:04.513
    2 00003572862 1075488 2018-05-10 00:01:00.000
    3 00003572862 1066346 2018-05-10 08:22:09.870
    4 00003572862 1480348 2018-05-26 09:36:51.417
    1 00004000846 113496 2018-01-29 17:07:35.267
    2 00004000846 1266211 2018-05-14 14:16:48.673




    Seria um exemplo de criar uma Cont.Se no Excel com matriz deslocando a primeira linha, entretanto como a base é muito grande preciso fazer no BD.

    Obrigado

    Marcio
    livio.sfranca
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 09/01/2018

    [Resolvido]Criar índice por atributo Empty Re: [Resolvido]Criar índice por atributo

    Mensagem  livio.sfranca em 28/6/2018, 18:26

    Boa tarde Márcio, não sei se já conseguiu resolver seu problema, mas de qualquer forma tenho um solução:

    1 . Suponhamos que os nomes dos seus objetos sejam estes:

    Nome da tabela:
    tbl_CPFs

    Campos da tabela:
    CodigoAuto - (Numérico Automático) seu código auto incremento
    CPF - (Texto curto) Acredito que seja texto no caso do CPF. Em caso de numérico, deverá fazer adaptações no código.
    Indice - (Numérico inteiro) Seu índice a ser criado. Caso não tenha esse campo, devera ser criado

    2. Em um módulo cole o código abaixo e faça as alterações dos nomes de campos e tabelas conforme seu BD:
    Código:
    Sub AtualizarIndice()
        Dim nIndice As Integer
        Dim rst As DAO.Recordset
        Dim nCPFAtual, nCPFAnterior As String
        
        Set rst = CurrentDb.OpenRecordset("SELECT tbl_CPFs.CodigoAuto, tbl_CPFs.CPF FROM tbl_CPFs ORDER BY tbl_CPFs.CPF")
        
        Do While Not rst.EOF
        
            nCPFAtual = rst("CPF")
            If nCPFAtual = nCPFAnterior Then
                nIndice = nIndice + 1
            Else
                nIndice = 1
            End If
            
            CurrentDb.Execute "UPDATE tbl_CPFs SET tbl_CPFs.Indice = " & nIndice & _
            " WHERE tbl_CPFs.CodigoAuto = " & rst("CodigoAuto")
            
            nCPFAnterior = nCPFAtual
            rst.MoveNext
        Loop

    rst.Close
    Set rst = Nothing
    End Sub

    3. Execute!

    Obs.: Não se esqueça de fazer um backup do BD antes de mais nada.
    avatar
    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    [Resolvido]Criar índice por atributo Empty Re: [Resolvido]Criar índice por atributo

    Mensagem  Marcio2501 em 2/7/2018, 21:21

    Boa tarde Lívio, tudo bem?

    Perfeito, funcionou !

    Obrigado

    Abraço

    Marcio

      Data/hora atual: 28/10/2020, 08:34