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]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, 17: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, 01: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: Qui 21 Set 2017, 16:30