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


4 participantes

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

    avatar
    DAVIDBHZ
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DAVIDBHZ 18/5/2018, 14:05

    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 18/5/2018, 18:34, editado 1 vez(es)
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CassioFabre 18/5/2018, 15:05

    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!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  FabioPaes 18/5/2018, 15:13

    Ola DAVIDBHZ, por favor adeque o Título do seu Tópico! Está em desacordo com as regras do Fórum!
    https://www.maximoaccess.com/t48-regras-do-forum
    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!
    avatar
    DAVIDBHZ
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DAVIDBHZ 18/5/2018, 17:54

    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
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  FabioPaes 18/5/2018, 18:00

    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!
    avatar
    DAVIDBHZ
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DAVIDBHZ 18/5/2018, 18:03

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DAVIDBHZ 18/5/2018, 18:15

    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
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alvaro Teixeira 18/5/2018, 18:20

    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
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CassioFabre 18/5/2018, 18:22

    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 18/5/2018, 19:16, editado 1 vez(es)


    .................................................................................
    Só não tem código pra morte!
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CassioFabre 18/5/2018, 18:24

    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!
    avatar
    DAVIDBHZ
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DAVIDBHZ 18/5/2018, 18:42

    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?
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CassioFabre 18/5/2018, 19:09

    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!
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CassioFabre 21/5/2018, 11:34

    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!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alvaro Teixeira 19/6/2018, 16:30

    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:
    https://www.maximoaccess.com/t860-resolucao-de-topicos

    Abraço a todos

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 05:45