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]Mensagem após execução de aprovação em lote

    avatar
    Josealdo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 183
    Registrado : 14/12/2012

    [Resolvido]Mensagem após execução de aprovação em lote Empty [Resolvido]Mensagem após execução de aprovação em lote

    Mensagem  Josealdo 25/8/2021, 15:06

    Olá colegas, vocês poderiam me auxiliar na seguinte situação:

    Tenho uma consulta com vários paramentros que me retornam os registros que faltam a provação.
    Esses registros que faltam a aprovação e que contenham determinadas condições serão dada uma aprovação em lote.
    Com isso consegui utilizando o codigo logo abaixo.
    Mais o que estou precisando? A aprovação via record set é dada as cegas. Gostaria de saber se tem como obter um retorno tipo uma caixa de mensagem com todos os registros atualizados pelo record set na aprovação?

    Agradeço antecipadamente.

    Segue o codigo:

    Private Sub Comando107_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT nrDocumento, campo1, campo2, campo3 FROM BDados WHERE Campo3=true and Campo2 = false")
    Do While Not rs.EOF
    rs.Edit
    If rs.Fields("Campo1") = "Aprovado" Then
    rs.Fields("Campo2") = True
    End If
    rs.Update
    rs.MoveNext
    Loop

    Set rs = Nothing
    Set db = Nothing
    End Sub
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem após execução de aprovação em lote Empty Re: [Resolvido]Mensagem após execução de aprovação em lote

    Mensagem  Marcelo David 25/8/2021, 15:27

    Josealdo, (bom dia novamente),

    Essa aprovação em lote, em média,
    quantos registros são aprovados?

    Se não forem muitos, poderíamos exibir
    em uma MsgBox. Mas caso seja muitos,
    daí teríamos que partir para um formulário
    exibindo em uma ListBox, ou coisa do tipo.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Mensagem após execução de aprovação em lote Marcel11

    Josealdo gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1772
    Registrado : 13/12/2016

    [Resolvido]Mensagem após execução de aprovação em lote Empty Re: [Resolvido]Mensagem após execução de aprovação em lote

    Mensagem  Alexandre Fim 25/8/2021, 15:29

    Olá,

    Segue sugestão.

    1 - Não há necessidade de percorrer registro a registro e editá-lo através de recordset. Se vc tiver 1000 registros para atualização, o recorset irá percorrê-los.
    Voce pode atualizar todos de uma só vez na instrução SQL usando o UPDATE.

    2 - No mesmo formulário, crie uma listbox (Caixa de Listagem), e ajuste com o nro de colunas e largura desejadas.

    3 - Código:
    Código:

    Private Sub Comando107_Click()
    On Error GoTo trata_erro
    Dim sSQL    As String

        sSQL = "UPDATE BDados SET Campo1 = 'Aprovado' WHERE Campo3 = -1 AND Campo2 = 0"
        CurrentDb.Execute sSQL
        
        '-- Atualoização da listbox com os registros atualizados
        Me.NomeDaSuaListBox.RowSource = "SELECT nrDocumento, campo1, campo2, campo3 FROM BDados WHERE Campo1= 'Aprovado' "
        Me.NomeDaSuaListBox.Requery

    trata_erro:

         MsgBox "" & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
         Exit Sub

    End Sub




    Espero ter ajudado.

    boa sorte

    Josealdo gosta desta mensagem

    avatar
    Josealdo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 183
    Registrado : 14/12/2012

    [Resolvido]Mensagem após execução de aprovação em lote Empty Re: [Resolvido]Mensagem após execução de aprovação em lote

    Mensagem  Josealdo 25/8/2021, 20:15

    @Marcelo David, vai variar mais em media uns 20 Registros.

    Obrigado.

    @Alexandre Fim, Vou tentar estudar o código.

    Obrigado.
    avatar
    Josealdo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 183
    Registrado : 14/12/2012

    [Resolvido]Mensagem após execução de aprovação em lote Empty Re: [Resolvido]Mensagem após execução de aprovação em lote

    Mensagem  Josealdo 12/9/2021, 17:48

    item resolvido com adaptações

      Data/hora atual: 18/9/2021, 17:40