MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Criar Numeração Condicional

    Compartilhe

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 168
    Registrado : 29/04/2011

    Criar Numeração Condicional

    Mensagem  vinicius.anna em Ter 10 Dez 2013, 12:08

    Bom dia

    Tenho uma tabela que foi importada do Sped Contábil e refere-se ao plano de contas da empresa. Preciso fazer com que o sistema gere uma sugestão de codificação condicional à partir da tabela importada da seguinte forma:

    A tabela importarda está desta forma:

    -----------------------------------------------------------------------------------------------
    |          Conta           |    Grau    |ContaMascara|                    NomeAgrupador       |
    | 11000000000000003        |          1 |            | DISPONIVEL                             |
    | 11000000000000004        |          2 |            | CAIXA CENTRAL                          |
    | 11000000000000005        |          4 |            | CAIXA MATRIZ                           |
    | 11010000000000005        |          4 |            | CAIXA FILIAL I                         |
    | 12100000000000004        |          2 |            | BANCOS CONTA MOVIMENTO                 |
    | 12100000000000005        |          3 |            | BANCOS MATRIZ                          |
    | 12100010000000006        |          4 |            | BANCO DO BRASIL S.A                    |
    | 12100020000000006        |          4 |            | BCO.ITAU S/A.                          |
    | 13110000000000005        |          3 |            | BANCOS FILIAL I                        |
    | 13110010000000006        |          4 |            | BCO.DO BRASIL S/A.                     |
    | 14000000000000003        |          1 |            | CREDITOS                               |
    | 14000000000000004        |          2 |            | C L I E N T E S                        |
    | 14000000000000005        |          3 |            | CLIENTES DA MATRIZ                     |
    | 14000010000000006        |          4 |            | MICRO INFORMATICA S/C LTDA             |
    | 14000020000000006        |          4 |            | PRODAP - PROC.DE DADOS                 |
    | 15100000000000004        |          2 |            | (-)PROVISAO PARA DEVEDORES DUVIDOSOS   |
    | 15100000000000005        |          4 |            | MATRIZ                                 |
    | 15110000000000005        |          4 |            | FILIAL I                               |
    | 16400000000000004        |          2 |            | IMPOSTOS A RECUPERAR                   |
    | 16400010000000005        |          4 |            | IPI A RECUPERAR                        |
    | 16400020000000005        |          4 |            | ICMS A RECUPERAR                       |
    -----------------------------------------------------------------------------------------------

    Preciso fazer com que o arquivo inteiro monte a sugestão, conforme abaixo:

    -----------------------------------------------------------------------------------------------
    |          Conta           |    Grau    |ContaMascara|                    NomeAgrupador       |
    | 11000000000000003        |          1 |1000000     | DISPONIVEL                             |
    | 11000000000000004        |          2 |1000000     | CAIXA CENTRAL                          |
    | 11000000000000005        |          4 |1000000     | CAIXA MATRIZ                           |
    | 11010000000000005        |          4 |1001000     | CAIXA FILIAL I                         |
    | 12100000000000004        |          2 |1010000     | BANCOS CONTA MOVIMENTO                 |
    | 12100000000000005        |          3 |1010000     | BANCOS MATRIZ                          |
    | 12100010000000006        |          4 |1010001     | BANCO DO BRASIL S.A                    |
    | 12100020000000006        |          4 |1010002     | BCO.ITAU S/A.                          |
    | 13110000000000005        |          3 |1011000     | BANCOS FILIAL I                        |
    | 13110010000000006        |          4 |1011001     | BCO.DO BRASIL S/A.                     |
    | 14000000000000003        |          1 |1100000     | CREDITOS                               |
    | 14000000000000004        |          2 |1100000     | C L I E N T E S                        |
    | 14000000000000005        |          3 |1100000     | CLIENTES DA MATRIZ                     |
    | 14000010000000006        |          4 |1100001     | MICRO INFORMATICA S/C LTDA             |
    | 14000020000000006        |          4 |1100002     | PRODAP - PROC.DE DADOS                 |
    | 15100000000000004        |          2 |1110000     | (-)PROVISAO PARA DEVEDORES DUVIDOSOS   |
    | 15100000000000005        |          4 |1110000     | MATRIZ                                 |
    | 15110000000000005        |          4 |1111000     | FILIAL I                               |
    | 16400000000000004        |          2 |1140000     | IMPOSTOS A RECUPERAR                   |
    | 16400010000000005        |          4 |1140001     | IPI A RECUPERAR                        |
    | 16400020000000005        |          4 |1140002     | ICMS A RECUPERAR                       |
    -----------------------------------------------------------------------------------------------

    A lógica seria assim:
    Quando o campo grau for 1, inicio com o código 1000000, quando for 2 ou 3, mantenho o código 1000000. Quando o grau for 4, vou acrescentando itens 1000001, 1000002, 1000003. Até que se encontre o proximo grau 1, 2, 3. Quando encontrar o próximo grau 1, por exemplo, o código será 1010000, se os proximos forem 2 ou 3, mantenho o código 1010000, encontrando o 4, vou acrescentando os itens, 1010001, 1010002 e assim sucessivamente.

    Algúem tem alguma dica de como posso fazer isto. Já tentei de várias formas mas todas sem sucesso. Agradeço desde já......

    Att. Vinicius
    Anexos
    Contador.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (23 Kb) Baixado 19 vez(es)

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 168
    Registrado : 29/04/2011

    Re: Criar Numeração Condicional

    Mensagem  vinicius.anna em Qua 11 Dez 2013, 12:17

    Bom dia,

    Estou a tentar usar o código abaixo:

    Código:

    Private Sub MontarContador_Click()
    'On Error Resume Next
    Dim strSql As String
    Dim rs As DAO.Recordset
    Dim ym As String
    Dim k As String
    strSql = "SELECT * FROM Reg_I050 ORDER BY Conta;"
    Set rs = CurrentDb.OpenRecordset(strSql)
    rs.MoveFirst
    ym = (rs!Conta) 'ano/mes
    k = 0
    Do While Not rs.EOF
        If ym = Val(rs!Conta) Then
            k = k + 1
        Else
            k = 1
            ym = Val(rs!Conta)
        End If
        rs.Edit
            rs!Contador = Val(ym & Format(k, "00000"))
        rs.Update
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    MsgBox "Término da montagem...."
    End Sub

    Ocorre que na tabela, grava-se 1E+21 para todos os campos.

    Alguém tem alguma dica?

    Att. Vinicius

      Data/hora atual: Dom 04 Dez 2016, 06:06