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


3 participantes

    [Resolvido]Como validar somatório de campo em duas tabelas

    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Como validar somatório de campo em duas tabelas Empty [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  SAPMM 27/2/2012, 10:43

    Senhores,


    Tenho duas tabelas, onde na tabela1 relaciono as filiais com os valores mensais e anuais que cada uma pode gastar e na tabela2 são relacionados os gastos mensais:

    TABELA1:
    Campo1: Empresa
    Campo2: Mês/ano
    Campo3: ValorMes
    Campo4: TotalAno

    TABELA2:
    Campo1:Empresa
    Campo2: Data
    Campo3: Descricaodogasto
    Campo4:Valordogasto

    Na tabela2 serão relacionados os gastos realizados por cada filial, sendo que ao terminar de digitar no campo4 da tabela2, o access deverá verificar se o somatório dos gastos da respectiva empresa é maior do que o valor do mês campo3 ValorMes da tabela1, se for maior será emitido um aviso que “valor mensal ultrapassado” e deixará gravar o valor, mas se o somatório do mesmo campo for maior que o valor do campo4 Totalano da tabela1, o access emitirá aviso de erro e não aceitará gravar o valor no campo4 Valordogasto da tabela2.

    Como proceder para obter o resultado esperado?
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Como validar somatório de campo em duas tabelas Empty Re: [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  Marcelo David 27/2/2012, 12:00

    Isso poderá ser feito em formulários, com uso do DCount (ou algo semelhante)
    Seria algo mais ou menos assim:

    If DCount("Campo3","TABELA1","[ChavePrimária]=" & Me.ChavePrimária)>Me.CAMPO4 Then
    MsgBox"O valar é maior que o permitido para esse mês",vbInformation, "Aviso"
    end if


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Como validar somatório de campo em duas tabelas Marcel11
    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Como validar somatório de campo em duas tabelas Empty Re: [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  SAPMM 27/2/2012, 12:45

    Mas também preciso testar o valor do ano, sendo que no valor do mês preciso verificar se o lançamento na tabela2 e de um determinado mês da tabela1.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Como validar somatório de campo em duas tabelas Empty Re: [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  Marcelo David 27/2/2012, 13:33

    Segue a mesma lógica, mas ao invéz do DCount, use o DLookup com a mesma sintax...


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Como validar somatório de campo em duas tabelas Marcel11
    avatar
    Leandron
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 11/01/2011

    [Resolvido]Como validar somatório de campo em duas tabelas Empty Re: [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  Leandron 28/2/2012, 10:01

    donizeth, supondo que vc esta num form baseado na tabela 2, e a tabela 2 tem mais de um registro por mês, tente o seguinte.

    no evento após atualizar da caixa valordogasto coloque:

    dim db as database
    dim valores_fixos,valores_somames,valores_somaano as recordset
    dim mes_ano_form as string

    mes_ano_form = month(me.data) & "/" & year(me.data) 'supondo que vc inseriu na tabela 1 os valores como string ex.: 2/12.

    set db = currentdb()

    set valores_fixos = db.openrecordset("select valormes, totalano from tabela 1 where empresa = '" & me.empresa & "' and mês/ano = '" & me.mes_ano_form & "'") 'irá buscar os valores que não podem ser ultrapassados pela empresa

    set valores_somames = db.openrecordset("select sum(valordogasto) as soma_mes from tabela 2 where empresa = '" & me.empresa & "' and month(data) = " & month(me.data)) 'irá somar os registros (tab2) que ja existem da empresa no mês

    set valores_somaano = db.openrecordset("select sum(valordogasto) as soma_ano from tabela 2 where empresa = '" & me.empresa & "' and year(data) = " & year(me.data)) 'irá somar os registros (tab2) que já existem da empresa no ano

    'agora vem a validação

    if (valores_somames("soma_mes") + me.totaldogasto) > valores_fixos("valormes") then 'se valor encontrado que já foi registrado para a empresa no mea + valor que esta sendo registrada (me.totaldogasto) > que limite
    msgbox "Você esta ultrapassando seu limite mensal!"
    else
    end if

    if (valores_somaano("soma_ano") + me.totaldogasto) > valores_fixos("totalano") then 'se valor encontrado que já foi registrado para a empresa no ano + valor que esta sendo registrada (me.totaldogasto) > que limite
    msgbox "Você esta ultrapassando seu limite Anual e não poderá registrar este valor!"
    me.valordogasto = empty
    else
    end if

    espero ter ajudado, posta aí se deu certo

    Conteúdo patrocinado


    [Resolvido]Como validar somatório de campo em duas tabelas Empty Re: [Resolvido]Como validar somatório de campo em duas tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 10:57