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


2 participantes

    [Resolvido]Dividir ano em períodos

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    [Resolvido]Dividir ano em períodos Empty [Resolvido]Dividir ano em períodos

    Mensagem  joseantonio 1/8/2014, 22:30

    Amigos, estou tentando desenvolver uma função que gera períodos do ano de forma: mensal, bimestral, trimestral, quadrimestral, semestral e anual, baseado no campo "me.inicio", ou seja, se o campo "me.inicio" for =  7 e o campo "me.per" for = 2 o código deverá gerar o período de 2 em  2 meses ficando da seguinte forma: 7, 9, 11, 1, 3, 5. Se o campo "me.inicio" for = 7 e o campo "me.per" for = 4 o código deverá gerar o período de 4 em 4 meses ficando da seguinte forma: 7, 11, 3 e assim sucessivamente.

    No código abaixo consegui gerar o primeiro período, porém do segundo mês em diante considera somente mensal.

    Desde já agradeço.

    Código:


    Private Sub Comando252_Click()
    DoCmd.Save
    Dim I As Integer
    Dim RsNovo As DAO.Recordset
    Dim StrSQL As String
    Dim StrSQLNovo As String

    StrSQL = "SELECT * FROM [tblprodNec] WHERE ID = " & Me.ID & ""
    StrSQLNovo = "SELECT * FROM [tblprodNec]"
    Set RsNovo = CurrentDb.OpenRecordset(StrSQLNovo)
    Dim StrDateAdd As Double
    'ME.PER = NÚMERO DE INTERVALO ENTRE OS PERÍODOS EX: SE FOR = 1 (MENSAL); 2(BIMESTRAL), 3(TRIMESTRAL), 6(SEMESTRAL), 12(ANUAL)
    For I = me.per To 12
    StrDateAdd = DateAdd("d", I, (Me.inicio))
    ReDim K(me.per)
    RsNovo.AddNew
        RsNovo![periodo] = StrDateAdd
        RsNovo![Idprop] = Me.idpro
        RsNovo![idprod] = Me.IDPD
        RsNovo![idcli] = Me.idc
        RsNovo.Update
    Next I
    End Sub

    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Dividir ano em períodos Empty Re: [Resolvido]Dividir ano em períodos

    Mensagem  LiveBrain 2/8/2014, 02:18

    Opa JoseAntonio,

    resolvi o problema criando duas variáveis conforme código abaixo... é só implementar no seu código
    Ah, no meu formulário de testes eu coloquei um TextBox ( Texto1 ) e um botão de comando que fica com o código.

    Código:
    Dim intPeriodo As Integer
    Dim intStep As Integer
    intPeriodo = Texto1
    intStep = intPeriodo

    For i = 0 To 12
         MsgBox VBA.Now & " - " & DateAdd("m", intPeriodo, VBA.Now)
         intPeriodo = intPeriodo + intStep
    Next

    Em todo o Caso, estou anexando o projeto.
    Anexos
    [Resolvido]Dividir ano em períodos AttachmentExemplo_periodo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (20 Kb) Baixado 10 vez(es)


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    [Resolvido]Dividir ano em períodos Empty Re: [Resolvido]Dividir ano em períodos

    Mensagem  joseantonio 2/8/2014, 15:13

    Valeu pela dica amigo muito obrigado! Resolvi a questão assim:

    Código:

    Private Sub Comando252_Click()
    Dim I As Integer
    Dim RsNovo As DAO.Recordset
    Dim StrSQL As String
    Dim StrSQLNovo As String
    Dim intPeriodo As Integer
    Dim intStep As Integer
    intPeriodo = Me.perescala
    intStep = intPeriodo

    StrSQL = "SELECT * FROM [tblprodNec] WHERE ID = " & Me.ID & ""
    StrSQLNovo = "SELECT * FROM [tblprodNec]"
    Set RsNovo = CurrentDb.OpenRecordset(StrSQLNovo)
    Dim StrDateAdd As Date
    For I = 0 To Me.perano
    StrDateAdd = DateAdd("m", intPeriodo, Texto251)
    'ReDim K(0)
    intPeriodo = intPeriodo + intStep
    RsNovo.AddNew
        RsNovo![periodo] = Format(StrDateAdd, "mm")
        RsNovo![Idprop] = Me.idpro
        RsNovo![idprod] = Me.IDPD
        RsNovo![idcli] = Me.idc
        RsNovo.Update
    Next I
    Me.Requery
    End Sub

    Conteúdo patrocinado


    [Resolvido]Dividir ano em períodos Empty Re: [Resolvido]Dividir ano em períodos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 16:00