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


3 participantes

    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA

    avatar
    efgomes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/12/2011

    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA Empty [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA

    Mensagem  efgomes 5/9/2015, 23:13

    Olá pessoal. Estou com um problema e creio que posso resolver com Loop. No entanto não consigo resolve-lo. Ficararei muito feliz se alguém que ler este meu comentário puder me ajudar.

    Vamos lá:

    Eu tenho uma tabela onde tenho três determinados campos: cns_medico, f_fbpa e procedimentos. Nos campos cns_medico e procedimentos os valores podem repetir e quando isso acontece o campo f_bpa recebe um número, que, também repete, na mesma quantidade dos primeiros citados.

    Só que, eu preciso alterar os números do campo f_bpa de acordo com uma sequencia que eu criar. Tipo assim: se lá tem um número 087, gostaria de trocar por 001,002...

    Não sei se consegui explicar direito. Para "ajudar" Essa tabela é proveniente do txt que é usado por programas de faturamento (BPA INDIVIDUALIZADO).

    Me ajudem! Estou precisando muito dessa solução.
    Obs: tudo esta como texto na tabela.

    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA 2f0azy8
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA Empty Re: [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA

    Mensagem  Alexandre Neves 6/9/2015, 09:52

    Bom dia,
    UPDATE tabela SET f_bpa=NovoNumero WHERE f_bpa=AntigoNumero


    .................................................................................
    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
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA Empty Re: [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA

    Mensagem  Dilson 14/9/2015, 18:19

    Vejo que essa questão é mesma que foi resolvida no AccessDoProgramador então postarei a solução para constar:

    SOLUÇÃO: Dilson escreveu:Criei o código para o seu caso e como a variação foi minima criei também para o outro caso que havia sugerido.

    Bastará criar um campo chamado "Ordem" na sua tabela do BPA.

    Em seguida coloque a partir de um botão o seguinte para ordenar como 001, 001, 001, 002, 002, 003, 003 ... :

    Dim rs As DAO.Recordset
    Dim old_BPA As String
    Dim nConta As Long
    Dim nTotal As Long
    Dim quantCar As Integer
    old_BPA = ""
    nConta = 0
    nTotal = 0
    quantCar = 0
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM SuaTabelaBPA ORDER BY f_bpa")
    rs.MoveLast
    rs.MoveFirst
     Do While Not rs.EOF
       If rs("f_bpa") = old_BPA Then
            nTotal = nConta
            quantCar = Len(Left(nTotal, 3))
            If quantCar = 1 Then
                 rs.Edit
                    rs("Ordem") = "00" & nTotal
                 rs.Update
            ElseIf quantCar = 2 Then
                     rs.Edit
                        rs("Ordem") = "0" & nTotal
                     rs.Update
            ElseIf quantCar = 3 Then
                     rs.Edit
                        rs("Ordem") = nTotal
                     rs.Update
            End If
            old_BPA = rs("f_bpa")
       Else
            old_BPA = rs("f_bpa")
            nConta = nConta + 1
            rs.Edit
               rs("Ordem") = "00" & nConta
            rs.Update
       End If
       rs.MoveNext
     Loop
    MsgBox "OK concluido. Abra a tabela ordene f_bpa para A-Z e veja o resultado no campo [Ordem]"
    rs.Close
    'Criado por Dilson para efgomes em 09/09/2015 - AccessDoProgramador.forumeiros.com
    'Objetivo: 'Ordenar como: 001, 001, 001, 002, 002, 003, 004, 004, 005 ...



    Em outro botão, se desejar ordenar como 001,002, 003, 001, 002, 003, 004, 004 .. coloque:

    Dim rs As DAO.Recordset
    Dim old_BPA As String
    Dim nConta As Long
    Dim nTotal As Long
    Dim quantCar As Integer
    old_BPA = ""
    nConta = 0
    nTotal = 0
    quantCar = 0
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM SuaTabelaBPA ORDER BY f_bpa")
    rs.MoveLast
    rs.MoveFirst
     Do While Not rs.EOF
       If rs("f_bpa") = old_BPA Then
            nTotal = nConta + 1
            quantCar = Len(Left(nTotal, 3))
            If quantCar = 1 Then
                 rs.Edit
                    rs("Ordem") = "00" & nTotal
                 rs.Update
            ElseIf quantCar = 2 Then
                     rs.Edit
                        rs("Ordem") = "0" & nTotal
                     rs.Update
            ElseIf quantCar = 3 Then
                     rs.Edit
                        rs("Ordem") = nTotal
                     rs.Update
            End If
            nConta = nConta + 1
            old_BPA = rs("f_bpa")
       Else
            old_BPA = rs("f_bpa")
            rs.Edit
               rs("Ordem") = "001"
            rs.Update
            nConta = 1
       End If
       rs.MoveNext
     Loop
    MsgBox "OK concluido. Abra a tabela ordene f_bpa para A-Z e veja o resultado no campo [Ordem]"
    rs.Close
    'Criado por Dilson para efgomes em 09/09/2015 - AccessDoProgramador.forumeiros.com
    'Objetivo: 'Ordenar como: 001, 002, 003, 001, 001, 002, 003, 004 ...


    Conteúdo patrocinado


    [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA Empty Re: [Resolvido]Substituir numeros de folhas de acordo com sequencia de registros iguais - Loop VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 01:53