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


    [Resolvido]Me.Requery volta ao primeiro registro

    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Me.Requery volta ao primeiro registro Empty Me.Requery volta ao primeiro registro

    Mensagem  ton0612 14/5/2011, 06:03

    Boa noite Pessoal.
    Estou com um pequeno probleminha, que achei que fosse simples... mas ja estou a dois dias tentando resolver e nada....
    Funciona assim:
    eu tenho uma tabela relacionada a outra como 1 para muitos. eu criei um form para cada.... o form principal eu tenho uma solicitação de um serviço num determinado material na quantidade de 2000 por exemplo. sendo assim... estes 2000 mil itens serao distribuidos para algumas pessoas, entao o que fiz. criei no form uma campo onde ele soma as quantidades enviadas 'Soma([Quantidade Enviada])' e desta forma posso ter um saldo
    '=([QuantidadeSolicitada])-([CampoDeSoma])' - até ai tudo bem ele calcula certo. Porém quando eu preencho o campo de quantidade enviada no subform gostaria que ele atualizasse o form de tal forma a ja calcular os campos acima de soma e saldo. entao coloquei o seguinte código logo após atualizar a quantidade enviada.

    Private Sub Quantidade_Enviada_AfterUpdate()

    Me.Requery 'aqui atualiza os campos

    If Forms![frm Ordem de Serviços Montagem]![frm Ordem de Serviços MontagemSub1].Form!txtSaldo < 0 Then
    MsgBox ("Valor digitado excede o Saldo para envio")
    DoCmd.RunCommand acCmdUndo

    Else
    Me.txtServiços.SetFocus

    End If

    End Sub

    Daí vem o seguinte problema. quando ele termina de rodar o código ele volta ao primeiro registro de quantidade enviada para os terceiros. e o comando "DoCmd.RunCommand acCmdUndo" gera um erro dizendo que não é possível desfazer no momento.


    Alguem tem uma ideia ou solução.... Creio que o problema esta em usar o "Requery" para atualizar, mas ja tentei outros como "recalc", "refresh" e não funcionam de acordo. pois ele atualiza o campo só depois de girar o código todo, e o erro da "msgbox" só aparece na depois que eu tento alterar de novo, mesmo que seja para um número que seja menor que o saldo.

    Espero que tenham entendido. rsrs

    Muito obrigado a todos, desde já.
    avatar
    Convidado
    Convidado


    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  Convidado 14/5/2011, 12:26

    Pelo que entendi a quantidade enviada esta no form...
    e voce entra com uma quantidade no sub-form e quer que atualize essa quantidade no form...

    Assim
    Qtd no form = 2000

    Digita enviada no Sub Form = 500

    Nova qtd no form = 1500


    é isso?
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  ton0612 14/5/2011, 20:25

    isso... eu tenho um form ja com a quantidade (2000)

    e no sub form eu digito na qtde enviada (500)

    logo terei um saldo de 1500 para os proximos registros do sub form...

    e qd uso aqueles código ele calcula, porém volta ao primeiro registro após executar o Requery, o accmdRefresh nao funciona neste caso. só o recalc ou o requery.
    avatar
    Convidado
    Convidado


    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  Convidado 14/5/2011, 20:38

    Vamos la...

    Crie um campo no form e nomeie: txtOperação

    No evento após atualizar do campo no SubForm (Campoque vai reveber o novo valor)

    Forms!NomeDoSeuFomr!txtOperação.Value = Forms!NomeDoSeuFomr!CampoValorNoForm.Value - Me.CampoNoSubForm.Value
    Essa linha acima seria a grosso modo traduzida assim:
    txtoperacao = Campo no Form (2000) - Campo no Sub Form (500)


    Assim o campo txt Operação assumira o valor da operacao matematica do CampoForm-CampoSubForm

    No Botao que executa essa operacão coloque
    Me.NomeDoCampoNoForm = Me.txtOperacao
    Assim a grosso modo.. NomeDo Campo no Form = Novo valor contido no txtoperacao

    Espero que tenha entendido

    Tente assim...

    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  ton0612 14/5/2011, 21:45

    Sim sim entendi sim... vou tentar aqui e te retorno... mas desde ja obrigado pela ajuda.....

    Valeu... assim que der certo te aviso... e ja mudo para resolvido dai ok.
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  ton0612 16/5/2011, 02:55

    Boa Noite Pessoal... Segui seu conselho Harysohn.... só fiz uma pequena modificação, criei uma variavel ao inves de criar um campo... e agora deu certo e ficou do tipo... to colocando o código abaixo, caso alguem queira consultar e adaptar ao projeto.

    Agradeço muito a todos deste fórum...


    Private Sub Quantidade_Enviada_AfterUpdate()
    Dim Txtoperacao, txtOpSaldo As String

    txtOpSaldo = Me.txtSaldo

    Me.Recalc

    Txtoperacao = Forms![frm Ordem de Serviços Montagem].Form!Quantidade - Me.TxtSomaQuantidade


    If Txtoperacao < 0 Then
    MsgBox ("Valor digitado excede o Saldo para envio")
    Me.Quantidade_Enviada = 0
    Me.Recalc
    Me.Quantidade_Enviada = Me.txtSaldo
    Me.txtServiços.SetFocus

    Else
    Me.txtServiços.SetFocus

    End If

    Me.Refresh

    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  Convidado 16/5/2011, 03:05

    Fico feliz.. sobre a variavel.. ótima ideia.. comecarei a fazer assim tambem

    O Fórum agradece!

    Conteúdo patrocinado


    [Resolvido]Me.Requery volta ao primeiro registro Empty Re: [Resolvido]Me.Requery volta ao primeiro registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 11:33