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

    Criar regra lançamento em registro

    Compartilhe

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Criar regra lançamento em registro

    Mensagem  wmantovani em Seg 22 Set 2014, 13:15

    Bom dia pessoal,

    Tenho o seguinte codifo em um botão que funciona perfeitamente, porem preciso implantar uma regra com aviso onde após atualizar o campo DATAVISTORIA nao permita o valor menor que o campo ( DATAENVIO, da tabela tblControleNotificações)...ja tentei algumas coisas aqui mas estou apanhando...


    Private Sub Comando128_Click()
    'DoCmd.SetWarnings False 'tirar avisos do acces
    Refresh
    DoCmd.RunSQL "INSERT INTO [tblLancamentoDocumentos] (CODIGO, PROCESSO, PROCESSO_OU_SOL, NOME, NOMEFISCAL, LOGNOME, LOGHORAEDATA, DATAVISTORIA, HORAVISTORIA, DOCUMENTO, NDOCUMENTO, OCORRENCIA, PRAZO)" & _
    "SELECT [Formulários]![subformDevolucao]![CODIGO] AS CODIGO" & _
    ",[Formulários]![subformDevolucao]![PROCESSO] AS PROCESSO" & _
    ",[Formulários]![subformDevolucao]![PROCESSO_OU_SOL] AS PROCESSO_OU_SOL" & _
    ",[Formulários]![subformDevolucao]![NOME] AS NOME" & _
    ",[Formulários]![LOGADO]![Usuário] AS NOMESFICAL" & _
    ",[Formulários]![LOGADO]![Usuário] AS LOGNOME" & _
    ",Date() AS LOGHORAEDATA" & _
    ",[Formulários]![subformDevolucao]![DATAVISTORIA] AS DATAVISTORIA" & _
    ",[Formulários]![subformDevolucao]![HORAVISTORIA] AS HORAVISTORIA" & _
    ",[Formulários]![subformDevolucao]![DOCUMENTO] AS DOCUMENTO" & _
    ",[Formulários]![subformDevolucao]![NDOCUMENTO] AS NDOCUMENTO" & _
    ",[Formulários]![subformDevolucao]![OCORRENCIA] AS OCORRENCIA" & _
    ",[Formulários]![subformDevolucao]![PRAZO] AS PRAZO"
    DoCmd.SetWarnings True 'recoloca avisos do access
    MsgBox "Registrado com sucesso !"
    Me.OCORRENCIA = Empty
    Refresh
    End Sub


    Desde já agradeço antecipadamente..



    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5890
    Registrado : 05/11/2009

    Re: Criar regra lançamento em registro

    Mensagem  Alexandre Neves em Seg 22 Set 2014, 19:24

    Boa noite,
    Não estudei o código mas quer que a verificação seja após a actualização? Se for antes, pode executar ou não; se for depois, será tarde para não executar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: Criar regra lançamento em registro

    Mensagem  wmantovani em Seg 22 Set 2014, 19:44

    No evento após atualizar. Se a regra não atender a mensagem valor inválido

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5890
    Registrado : 05/11/2009

    Re: Criar regra lançamento em registro

    Mensagem  Alexandre Neves em Seg 22 Set 2014, 20:31

    Nomeie os controlos de forma normalizada.
    Private Sub Comando128_Click()
    'DoCmd.SetWarnings False 'tirar avisos do acces
    Refresh
    if [Formulários]![subformDevolucao]![DATAVISTORIA]msgbox "mensagem..."
    else
    DoCmd.RunSQL "INSERT INTO [tblLancamentoDocumentos] (CODIGO, PROCESSO, PROCESSO_OU_SOL, NOME, NOMEFISCAL, LOGNOME, LOGHORAEDATA, DATAVISTORIA, HORAVISTORIA, DOCUMENTO, NDOCUMENTO, OCORRENCIA, PRAZO)" & _
    "SELECT [Formulários]![subformDevolucao]![CODIGO]" & _
    ",[Formulários]![subformDevolucao]![PROCESSO]" & _
    ",[Formulários]![subformDevolucao]![PROCESSO_OU_SOL]" & _
    ",[Formulários]![subformDevolucao]![NOME]" & _
    ",[Formulários]![LOGADO]![Usuário]" & _
    ",[Formulários]![LOGADO]![Usuário]" & _
    ",Date()" & _
    ",[Formulários]![subformDevolucao]![DATAVISTORIA]" & _
    ",[Formulários]![subformDevolucao]![HORAVISTORIA]" & _
    ",[Formulários]![subformDevolucao]![DOCUMENTO]" & _
    ",[Formulários]![subformDevolucao]![NDOCUMENTO]" & _
    ",[Formulários]![subformDevolucao]![OCORRENCIA]" & _
    ",[Formulários]![subformDevolucao]![PRAZO]"
    DoCmd.SetWarnings True 'recoloca avisos do access
    MsgBox "Registrado com sucesso !"
    Me.OCORRENCIA = Empty
    Refresh
    end if
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: Criar regra lançamento em registro

    Mensagem  wmantovani em Seg 22 Set 2014, 21:22

    Caro Alexandre acho que me expressei mau...

    É o seguinte, tenho um formulário filtrado desacoplando com somente o dado que eu quero no momento.

    a tabela que da origem a esses dados chama-se tblControleNotificações, e possui os seguintes campos:

    CODIGO;PROCESSO;PROCESSO_OU_SOL;NOME;ATENDIDO;AGENTE;LOGNOME;LOGHORAEDATA;DATAENVIO;DATAVISTORIA;AGENTELANCAMENTO

    o formulário chama-se subformDevolucao

    preciso que ao atualizar o campo DATAVISTORIA ele verifique se a data é maior que o campo DATAENVIO da tabela tblControleNotificações, com o campo CODIGO, que identifica o registro certo, se for maior ele roda o código abaixo

    DoCmd.RunSQL "INSERT INTO [tblLancamentoDocumentos] (CODIGO, PROCESSO, PROCESSO_OU_SOL, NOME, NOMEFISCAL, LOGNOME, LOGHORAEDATA, DATAVISTORIA, HORAVISTORIA, DOCUMENTO, NDOCUMENTO, OCORRENCIA, PRAZO)" & _
    "SELECT [Formulários]![subformDevolucao]![CODIGO] AS CODIGO" & _
    ",[Formulários]![subformDevolucao]![PROCESSO] AS PROCESSO" & _
    ",[Formulários]![subformDevolucao]![PROCESSO_OU_SOL] AS PROCESSO_OU_SOL" & _
    ",[Formulários]![subformDevolucao]![NOME] AS NOME" & _
    ",[Formulários]![LOGADO]![Usuário] AS NOMESFICAL" & _
    ",[Formulários]![LOGADO]![Usuário] AS LOGNOME" & _
    ",Date() AS LOGHORAEDATA" & _
    ",[Formulários]![subformDevolucao]![DATAVISTORIA] AS DATAVISTORIA" & _
    ",[Formulários]![subformDevolucao]![HORAVISTORIA] AS HORAVISTORIA" & _
    ",[Formulários]![subformDevolucao]![DOCUMENTO] AS DOCUMENTO" & _
    ",[Formulários]![subformDevolucao]![NDOCUMENTO] AS NDOCUMENTO" & _
    ",[Formulários]![subformDevolucao]![OCORRENCIA] AS OCORRENCIA" & _
    ",[Formulários]![subformDevolucao]![PRAZO] AS PRAZO"
    DoCmd.SetWarnings True 'recoloca avisos do access
    MsgBox "Registrado com sucesso !"
    Me.OCORRENCIA = Empty
    Refresh
    End Sub

    se for menor emite aviso que o valor é invalido


    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5890
    Registrado : 05/11/2009

    Re: Criar regra lançamento em registro

    Mensagem  Alexandre Neves em Seg 22 Set 2014, 21:36

    Coloque no acontecimento AposActualizar do controlo de data
    if [Formulários]![subformDevolucao]![DATAVISTORIA]> dlookup("DATAENVIO","tblControleNotificações","CODIGO=" & ControloCodigoNoFormulario) then
    DoCmd.execute "INSERT INTO [tblLancamentoDocumentos] (CODIGO, PROCESSO, PROCESSO_OU_SOL, NOME, NOMEFISCAL, LOGNOME, LOGHORAEDATA, DATAVISTORIA, HORAVISTORIA, DOCUMENTO, NDOCUMENTO, OCORRENCIA, PRAZO)" & _
    "SELECT [Formulários]![subformDevolucao]![CODIGO]" & _
    ",[Formulários]![subformDevolucao]![PROCESSO]" & _
    ",[Formulários]![subformDevolucao]![PROCESSO_OU_SOL]" & _
    ",[Formulários]![subformDevolucao]![NOME]" & _
    ",[Formulários]![LOGADO]![Usuário]" & _
    ",[Formulários]![LOGADO]![Usuário]" & _
    ",Date()" & _
    ",[Formulários]![subformDevolucao]![DATAVISTORIA]" & _
    ",[Formulários]![subformDevolucao]![HORAVISTORIA]" & _
    ",[Formulários]![subformDevolucao]![DOCUMENTO]" & _
    ",[Formulários]![subformDevolucao]![NDOCUMENTO]" & _
    ",[Formulários]![subformDevolucao]![OCORRENCIA]" & _
    ",[Formulários]![subformDevolucao]![PRAZO]"
    end if


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: Criar regra lançamento em registro

    Mensagem  wmantovani em Seg 22 Set 2014, 21:55

    Consegui resolver, troquei a palavra formulários por form e foi, achei que nao tinha problema pelo access estar em pt-br, mas enfim valeu mesmo...grato

      Data/hora atual: Sab 10 Dez 2016, 12:41