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]Dao.Recorset

    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Dao.Recorset Empty [Resolvido]Dao.Recorset

    Mensagem  marcelo3092 30/7/2017, 20:01

    Ola galera eu mais uma vez espero q os amigos possam me ajudar queria executar este código porem queria verificar no subformulário se o campo tipo sim/não este como sim se estive executar este código tentei varias formas mais não sou tão bom em vba nem sql.

    O Subformulaário e Formulario continuo.

    Dim rs As DAO.Recordset

    If MsgBox("Deseja Realmente dar Desconto Para Todos Parcelas?", vbYesNo, "SI-V") = vbYes Then

    Dim rs4 As Recordset
    Set rs4 = Me!PG_Parcela_Venda_Sub.Form.RecordsetClone
    Do While Not rs4.EOF
    rs4.Edit
    rs4![DescontoR] = Me!Texto26
    rs4.Update
    rs4.MoveNext
    Loop
    rs4.Close
    Set rs4 = Nothing
    PG_Parcela_Venda_Sub.Requery
    MsgBox "Alteração Efetuada com Sucesso!!! ", vbOKOnly, "SI-V"

    Else

    Cancel = True
    Me.Undo
    End If

    se puderem me ajuda agradeço.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Dao.Recorset Empty Re: [Resolvido]Dao.Recorset

    Mensagem  Phillip_Junior 30/7/2017, 22:35

    olá

    explique melhor oq pretende fazer amigo e se possível poste um exemplo.



    abraços


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Dao.Recorset Empty Dao.Recorset

    Mensagem  marcelo3092 31/7/2017, 02:39

    Ola amigo então esse código faz o que eu quero tenho um formulario que tem o campo texto26 que ao atualizar ele ele pergunta se quer dar desconto se sim ele atualiza todos os valores do campo desconto no subformulário porem eu queria que função so atualiza-se os campos desconto se no campo sim/não que chama pagar estive-se selecionado como sim e não atualiza-se os campo que estive-se como Não.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Dao.Recorset Empty Re: [Resolvido]Dao.Recorset

    Mensagem  Phillip_Junior 31/7/2017, 09:40

    Olá

    Eu iria fazer um pequeno exemplo aqui já que as informações foram um pouco superficiais, tipo nome tabela, onde está esse campo texto que comentas na msg acima, nome campo sim/não, esse formulário está relacionado a uma consulta a uma tabela, essas coisas. Mas enfim! No meu banco de dados de dúvidas eu lembrei que já tinha visto essa dúvida e se trata apenas de correr linha a linha no sub e verificar se tem o valor true ou false ou -1 ou 0 e capturar o desconto que precisa.
    Mas como estou na corrida saindo, deixo o link do nosso mestre Avelino que também ajuda aqui no fórum.

    Veja se esse artigo lhe ajuda.

    http://www.redeaccess.com.br/viewtopic.php?t=562


    Se não conseguir e até a noite ninguém lhe tiver reportado uma resposta eu faço um exemplo e lhe envio ok ?

    Abraços e boa sorte


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Dao.Recorset Empty Dao Recorset

    Mensagem  marcelo3092 1/8/2017, 02:42

    Boa noite caro amigo tentei sim fazer porem sem sucesso bom resumindo novamente  tem um formulario Pagamento e nesse formulario eu tenho um campo texto28 que esta no formato moeda que apos atualizar ele verificar no subformulario pagamentosub em qual linha esta o campo Pagar marcado como sim e atualizar nessa linha o campo DescontoR  para o valor resultante do código.
    tentei usar este código mais ele deu desconto em todas as parcelas e não as que estao marcadas como sim.


    On Error Resume Next

    If MsgBox("Aplicar o desc de: " & Me.Texto26 & "" & vbCrLf & _
    "em todos os artigos desse pedido ?", vbYesNo, "Aviso..") = vbNo Then
    Me.Undo
    Exit Sub
    Else
    'rotina para copiar o valor do desconto para os itens que estão no subformulário
    Dim Rs As DAO.Recordset
    Dim Contador As Long
    Dim ContaOProgresso As Long
    Set Rs = Me!PG_Parcela_Venda_Sub.Form.RecordsetClone

    If Rs.RecordCount > 0 Then
    Rs.MoveLast
    Contador = Rs.RecordCount
    Rs.MoveFirst
    End If

    For ContaOProgresso = 1 To Contador
    Rs.Edit
    Rs("DescontoR") = Me!Texto26
    Rs.Update
    Rs.MoveNext
    Next ContaOProgresso
    DoCmd.RunCommand acCmdSaveRecord
    'fim da rotina de cópia


    'inicio da rotina de calculo do desconto para os itens que estão no subformulário
    Dim x As Variant
    Dim Rs2 As DAO.Recordset
    DoCmd.RunCommand acCmdSaveRecord
    Set Rs2 = Me!PG_Parcela_Venda_Sub.Form.RecordsetClone
    x = IIf(Rs2!Pagar = -1, Nz(Rs2!DescontoR, 0), 0)
    Do While Not Rs2.EOF
    Rs2.Edit
    Rs2!DescontoR = x

    Rs2.Update
    Rs2.MoveNext
    Loop
    Rs2.Close
    'fim da rotina de calculo

    MsgBox "OK, Total de: " & Contador & " registros atualizados.", vbInformation, "AVISO"
    DoCmd.RunCommand acCmdSave
    Me.Requery
    End If

    End Sub





    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Dao.Recorset Empty Dao Recorset

    Mensagem  marcelo3092 1/8/2017, 03:47

    Tentei este aqui ate funcionou porem ao executar trava o access onde sera que esta o problema



    Dim Rs As DAO.Recordset

    If MsgBox("Deseja Realmente dar Desconto Para Todos Parcelas?", vbYesNo, "SI-V") = vbYes Then

    Dim rs4 As Recordset
    Set rs4 = Me!PG_Parcela_Venda_Sub.Form.RecordsetClone
    Do While Not rs4.EOF
    If rs4.Fields("Pagar").value = True Then 'So Acrescentei esta linha no codigo.
    rs4.Edit
    rs4![DescontoR] = Me!Texto26
    rs4.Update
    rs4.MoveNext
    Else
    End If
    Loop
    rs4.Close
    Set rs4 = Nothing
    PG_Parcela_Venda_Sub.Requery
    MsgBox "Alteração Efetuada com Sucesso!!! ", vbOKOnly, "SI-V"

    Else

    Cancel = True
    Me.Undo
    End If
    End Sub
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Dao.Recorset Empty Re: [Resolvido]Dao.Recorset

    Mensagem  ronaldojr1 3/8/2017, 14:28

    o problema esta na linha rs4.movenext
    tire esse comando de dentro do if e deixe em cima da linha loop

    ficando mais ou menos assim

    do while not rs4.EOF
     if ..... then
    .
     .
     .
    endif
    rs4.moveNext
    loop
    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Dao.Recorset Empty Dao.Recorset

    Mensagem  marcelo3092 4/8/2017, 02:13

    Ola pessoal finalmente resolveu o amigo ajudo pra caramba ficou assim o código.

    Private Sub Texto26_BeforeUpdate(Cancel As Integer)
    Dim Rs As DAO.Recordset

    If MsgBox("Deseja Realmente dar Desconto Para Todos Parcelas?", vbYesNo, "SI-V") = vbYes Then

    Dim rs4 As Recordset
    Set rs4 = Me!PG_Parcela_Venda_Sub.Form.RecordsetClone
    Do While Not rs4.EOF
    If rs4.Fields("Pagar") = True Then 'So Acrescentei esta linha no codigo.
    rs4.Edit
    rs4![DescontoR] = Me!Texto26
    rs4.Update
    End If
    rs4.MoveNext
    Loop
    rs4.Close
    Set rs4 = Nothing
    PG_Parcela_Venda_Sub.Requery
    MsgBox "Alteração Efetuada com Sucesso!!! ", vbOKOnly, "SI-V"

    Else

    Cancel = True
    Me.Undo
    End If
    End Sub


    Muito Obrigado Galera.

    Conteúdo patrocinado


    [Resolvido]Dao.Recorset Empty Re: [Resolvido]Dao.Recorset

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 09:51