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

    Comparação entre tabela e dados de um formulário via VBA

    Compartilhe

    DAVIDBHZ
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 21/09/2017

    Comparação entre tabela e dados de um formulário via VBA

    Mensagem  DAVIDBHZ em Sex Maio 18, 2018 7:05 am

    bom dia, estou com uma duvida, preciso busca uma data em uma consulta e compara com uma data digitada no formulario. mas todos os caminhos que tentei para busca o dado na consulta deu errado.

    essa comparação e para impedir que os usuarios lancem coisa com datas de períodos que ja foram fechados e conferidos.


    Última edição por DAVIDBHZ em Sex Maio 18, 2018 11:34 am, editado 1 vez(es)
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  CassioFabre em Sex Maio 18, 2018 8:05 am

    Bom dia,

    Ao que parece você está tentando fazer algo financeiro/contábil. Geralmente nesses casos se utiliza um período mensal para fechamento. O que eu recomendo para facilitar seu processo, até mesmo em termos de desempenho, é criar uma tabela com os períodos ( tblPeriodo ) de referencia e um campo booleano para fechado ou aberto. A estrutura ficaria algo do tipo:

    codigo (AutoNumerico) | periodo (texto) | fechado (sim/não)

    1 | 04/2018 | [x]
    2 | 05/2018 | [ ]

    No formulário, no evento após atualizar da data de lançamento, você coloca:
    Código:
    Dim str as string

    str = month(txtData) & "/" & year(txtData)

    If DLookup("fechado", "tblPeriodos", "periodo = '" & str & "'") = true Then
        Msgbox "O período " & str & " já foi fechado. Não é possível fazer novos lançamentos.", vbCritical, "Período"
        txtData = null
    End if

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3904
    Registrado : 14/08/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  FabioPaes em Sex Maio 18, 2018 8:13 am

    Ola [Você precisa estar registrado e conectado para ver este link.], por favor adeque o Título do seu Tópico! Está em desacordo com as regras do Fórum!
    [Você precisa estar registrado e conectado para ver este link.]
    Grato!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    DAVIDBHZ
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 21/09/2017

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  DAVIDBHZ em Sex Maio 18, 2018 10:54 am

    FabioPaes desculpa, vou me atentar nisso.

    CassioFabre nao deu em nada, por algum motivo não funcionou

    Private Sub DATA_PROGRAMACAO_AfterUpdate()
    Dim str As String

    str = Month(DATA_PROGRAMACAO) & "/" & Year(DATA_PROGRAMACAO)

    If DLookup("fechado", "tblPeriodos", "periodo = '" & str & "'") = True Then
    MsgBox "O período " & str & " já foi fechado. Não é possível fazer novos lançamentos.", vbCritical, "Período"
    DATA_PROGRAMACAO = Null
    End If

    End Sub
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3904
    Registrado : 14/08/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  FabioPaes em Sex Maio 18, 2018 11:00 am

    So lembrando que se o Campo é do tipo Data, deve ser formatado para padrão Americano e ainda estar entre ##.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    DAVIDBHZ
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 21/09/2017

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  DAVIDBHZ em Sex Maio 18, 2018 11:03 am

    esta como Data abreviada. e tem uma mascara 00/00/00;;_

    DAVIDBHZ
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 21/09/2017

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  DAVIDBHZ em Sex Maio 18, 2018 11:15 am

    acho que descobri, a função str = Month(DATA_PROGRAMACAO) esta retornando valores sem o 0 tipo data 01/18 era retorna 1/18 e na tabela estava colocando 01/18.
    vou colocar uma 0 antes para ficar mais fácil a compreensão do usuário.


    Dim str As String

    str = "0" & Month(DATA_PROGRAMACAO) & "/" & Year(DATA_PROGRAMACAO)

    If DLookup("fechado", "tblPeriodos", "periodo = '" & str & "'") = True Then
    MsgBox "O período " & str & " já foi fechado. Não é possível fazer novos lançamentos.", vbCritical, "Período"
    DATA_PROGRAMACAO = Null
    End If

    End Sub


    assim ficou o código final. obrigado a todos
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5548
    Registrado : 15/03/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  ahteixeira em Sex Maio 18, 2018 11:20 am

    Olá a todos,

    David Gomes, sabemos que é um membro recente, seja Bem-Vindo ao fórum.
    Antes de dar continuidade ao tópico deve regularizar a situação reportada pelo colega moderador Fábio.
    Então para isso vá à mensagem n. 1 clique no botão editar e ajuste em conformidade com as Regras do Fórum, a alteração terá efeito em todas as mensagens.

    Abraço a todos
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  CassioFabre em Sex Maio 18, 2018 11:22 am

    Boa tarde,

    Amigo, neste caso faça uma verificação do mês antes, pois do jeito que você está fazendo, quando chegar em outubro, você terá grandes problemas pois a variável str será igual a "010/2018", não conseguindo fazer a verificação. Deixei o codigo conforme abaixo:
    Código:
    Dim str As String

    If month(DATA_PROGRAMACAO) < 10 then str = "0"

    str = str & Month(DATA_PROGRAMACAO) & "/" & Year(DATA_PROGRAMACAO)

    If DLookup("fechado", "tblPeriodos", "periodo = '" & str & "'") = True Then
    MsgBox "O período " & str & " já foi fechado. Não é possível fazer novos lançamentos.", vbCritical, "Período"
    DATA_PROGRAMACAO = Null
    End If

    End Sub

    Abraço.


    Última edição por CassioFabre em Sex Maio 18, 2018 12:16 pm, editado 1 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  CassioFabre em Sex Maio 18, 2018 11:24 am

    Acredito que pelo nick dele, pelo titulo do tópico e pelo nome que da aos controles, ele use o caps lock em tudo. Mas é importante que o tópico esteja de acordo com as regras.


    .................................................................................
    Só não tem código pra morte!

    DAVIDBHZ
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 21/09/2017

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  DAVIDBHZ em Sex Maio 18, 2018 11:42 am

    Estava programando, e Caps ligado, desculpa a indelicadeza, e estava a meia hora tentando entender o que estava de errado, se era as palavras que usei, se tinha uma regra de como criar o titulo etc! ate percebe que estava gritando. desculpa mesmo.

    CassioFabre tinha percebido isso, estava fazendo alguns teste para posta aqui o final.


    Dim str As String

    If month(DATA_PROGRAMACAO) > 9 then str = "0"

    str = str & Month(DATA_PROGRAMACAO) & "/" & Year(DATA_PROGRAMACAO)

    If DLookup("fechado", "tblPeriodos", "periodo = '" & str & "'") = True Then
    MsgBox "O período " & str & " já foi fechado. Não é possível fazer novos lançamentos.", vbCritical, "Período"
    DATA_PROGRAMACAO = Null
    End If

    End Sub

    If month(DATA_PROGRAMACAO) > 9 then str = "0" essa linha tem que ser <=9 certo?
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  CassioFabre em Sex Maio 18, 2018 12:09 pm

    Boa tarde,

    Sim, deve ser <= 9 ou simplesmente <10. Estava tendo que correr pra sair aqui, acabei não me apercebendo. Mas o correto dessa linha é:

    If month(DATA_PROGRAMACAO) <= 9 then str = "0"


    .................................................................................
    Só não tem código pra morte!
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  CassioFabre em Seg Maio 21, 2018 4:34 am

    Bom dia,

    Também de acordo com as regras, caso o tópico tenha sido resolvido, não esqueça de marcá-lo como tal.


    .................................................................................
    Só não tem código pra morte!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5548
    Registrado : 15/03/2013

    Re: Comparação entre tabela e dados de um formulário via VBA

    Mensagem  ahteixeira em Ter Jun 19, 2018 9:30 am

    Olá a todos,

    David Gomes, acontece (quanto ao Caps), situação regularizada, relativamente ao tópico como ficou a situação?
    Os membros do fórum merecem e agradecem o retorno.

    Caso a situação esteja Resolvida não se esqueça de dar o tópico como tal, veja como fazer:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço a todos

      Data/hora atual: Sex Out 19, 2018 5:37 am