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

    Compartilhe

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

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

    [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
    avatar
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    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.

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

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

    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: 17/11/2018, 03:06