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

    [Resolvido]Numeração sequencial em campo tipo texto

    Compartilhe

    dlourencini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 4
    Registrado : 13/05/2011

    [Resolvido]Numeração sequencial em campo tipo texto

    Mensagem  dlourencini em Sab 24 Out 2015, 20:31

    Olá pessoal.

    Tenho um banco de dados de contas a pagar, onde em um dos formulários tem uma instrução para gerar pagamentos parcelados, tipo aluguel, que tem todos os meses e é o mesmo valor até o mês de correção. Ao invés do usuário digitar mês a mês esta despesa, ele digita apenas uma vez e informa a quantidade de parcelas.
    Esse código eu peguei aqui no fórum e está redondinho. O que eu preciso é o seguinte:

    Quando o usuário escolher a forma de pagamento como sendo cheque pré-datado, será exibido um campo [numerododocumento] para informar apenas o número do primeiro cheque (ex: 34567) e o sistema numera os demais cheques conforme o número de parcelas (ex: 5 parcelas -> cheques 34567, 34568, 34569, 34570 e 34571).
    É isso que não sei fazer.

    Informações do banco de dados:

    Tabela tb_despesa:
    [codigodadespesa] - numeração automática
    [descricaodadespesa] - texto
    [formadepagto] - texto
    [numerododocumento] - texto
    [datadovencimento] - data/hora
    [valordadespesa] - moeda


    Formulário frm_input_despesa_sequencial: campos não acoplados:
    [txtdescricaodadespesa]
    [txtdatadovencimento]
    [txtformadepagto]
    [txtnumerododocumento]
    [txtvalordadespsa]
    [txtqtdparcelas]

    Código no evento ao clicar do botão botao-cadastrar-sequencia:

    Dim I As Integer
    Dim StrDateAdd As Date
    Dim StrValorParc As Double
    Dim Parc As String
    StrValorParc = Me.txtVALORDADESPESA
    For I = 0 To (Me.txtQTDPARCELAS - 1)
    StrDateAdd = DateAdd("m", I, Format(Me.txtDATADOVENCIMENTO, "dd/mm/yyyy"))
    StrParc = I & "/" & Me.txtQTDPARCELAS
    CurrentDb.Execute "INSERT INTO TB_DESPESAS(CODIGOCENTRODECUSTO,DESCRICAODADESPESA,FORMADEPAGTO,DATADOVENCIMENTO,VALORDADESPESA)" _
                       & " Values(""" & Me.txtCODIGOCENTRODECUSTO.Value & """,""" & Me.txtDESCRICAODADESPESA.Value & """,""" & Me.txtFORMADEPAGTO.Value & """,#" & Format(StrDateAdd, "mm/dd/yyyy") & "#, """ & StrValorParc & """);"
    Next I
    MsgBox "Sequência de despesas cadastrada com sucesso.", vbInformation, "Aviso"

    Poderiam me ajudar?
    Desde já agradeço.

    dlourencini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 4
    Registrado : 13/05/2011

    Re: [Resolvido]Numeração sequencial em campo tipo texto

    Mensagem  dlourencini em Ter 27 Out 2015, 03:24

    Pessoal, resolvido!
    Foi só pensar um pouco e alterar o tipo de dados do campo [numerododocumento] de texto para número.
    No botão que gera as parcelas, fiz algumas alterações, a saber (em negrito):

    Dim I As Integer
       Dim StrDateAdd As Date
       Dim StrValorParc As Double
       Dim Parc As String
       Dim StrNumDoc As Double
       StrNumDoc = Me.txtNUMERODODOCUMENTO - 1
       StrValorParc = Me.txtVALORDADESPESA
       For I = 0 To (Me.txtQTDPARCELAS - 1)
       StrDateAdd = DateAdd("m", I, Format(Me.txtDATADOVENCIMENTO, "dd/mm/yyyy"))
       StrParc = I & "/" & Me.txtQTDPARCELAS
       StrNumDoc = Me.txtNUMERODODOCUMENTO + I
       CurrentDb.Execute "INSERT INTO TB_DESPESAS(CODIGOCENTRODECUSTO,DESCRICAODADESPESA,FORMADEPAGTO,NUMERODODOCUMENTO,DATADOVENCIMENTO,VALORDADESPESA)" _
                       & " Values(""" & Me.txtCODIGOCENTRODECUSTO.Value & """,""" & Me.txtDESCRICAODADESPESA.Value & """,""" & Me.txtFORMADEPAGTO.Value & """,""" & StrNumDoc & """,#" & Format(StrDateAdd, "mm/dd/yyyy") & "#, """ & StrValorParc & """);"
       Next I
       MsgBox "Sequência de despesas cadastrada com sucesso.", vbInformation, "Aviso"

    Funciona belezinha.
    Valeu galera.

      Data/hora atual: Sab 10 Dez 2016, 04:57