MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Compartilhe
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Sab 21 Out 2017, 17:37

    Prezados boa tarde.

    Tenho um pequeno problema em mãos.   Preciso selecionar, marcar aleatoriamente itens em um formulário continuo, para que através disso eu possa mudar o status em uma tabela.  Até consegui e está rodar, mas a seleção vai ser aleatória e para isso há um campo sim/não para ser marcado.

    É nisso que eu estou a apanhar, fazer com que o código veja esse campo sim/não   e apenas nesses selecionados ele execute o update de status na tabela.

    Segue o código....

    Onde nesse código os campos são...

    TblAtendimento= tabela onde vai ocorrer a mudança
    StatusOculta = campo presente na tabela, tipo texto
    Me.StatusOculta= campo do formulário continuo, tipo texto
    Me.AEnvioEnviado = Campo Sim/Não, presente na TblAtendimento e no formulário continuo

    Private Sub bt_alterar_Click()

    If MsgBox("Deseja alterar o status de Aguardando Envio para Enviado" & vbCrLf & _
             "Dos  " & Me.TotalMudado & "  itens selecionados ?", vbQuestion + vbYesNo, Me.Caption) = vbNo Then
             Me.Undo
             Exit Sub
             Else
             Dim db As Database
             Dim rs As Recordset
             Set db = CurrentDb
            Set rs = db.OpenRecordset("Select * from TblAtendimento  Where StatusOculta = '" & Me.StatusOculta & "'") 'And Me.AEnvioEnviado = -1)
             rs.Edit
             rs("DataEnvio") = Date
             rs("StatusOculta") = "Enviado"
             rs("NaoEnviado") = 0
             rs("ComissaoAPagar") = -1
             rs.Update
             rs.Close
             db.Close
             End If
             Me.Refresh
             Me.Requery
             Me.Recalc
             Me.Oculta.SetFocus

    End Sub


    Se alguém puder me dar uma força, fico eu agradecido.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  ahteixeira em Dom 22 Out 2017, 12:00

    Olá Silvio, esse campo sim/não está na tabela como um campo temporário, exemplo selTmp

    Se sim, será correr uma consulta update para mudar status, depois outra update para limpar o selTmp. Assim não necessita do recordset.

    Caso seja de outra forma, poste pequeno exemplo dos objectos envolvidos para se testar.
    Abraço
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Dom 22 Out 2017, 12:14

    Boa tarde Alvaro..

    Vou lhe manda uma MP explicando umas coisas...


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  ahteixeira em Dom 22 Out 2017, 18:19

    Olá Silvio, compreendo a situação.
    Envie então para o meu email e partilhamos aqui depois apenas a solução adotada.
    Abraço
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Dom 22 Out 2017, 19:51

    Boa noite....

    Já foi !

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  JPaulo em Seg 23 Out 2017, 12:34

    Código:
    Private Sub bt_alterar_Click()
    'Quando se marca a caixa no Formulário AEnvioEnviado, tenho que alterar o Status na TblAtendimento de "Aguardando Envio" para "Enviado"
    'Essa alteração ela está fazendo, o que eu não estou conseguindo é fazer com que  eu posso marcar aleatóriamente os registros e assim
    'Dar baixa, pois o usuário vai receber lotes para dar baixa de forma aleatória.


    If MsgBox("Deseja alterar o status de Aguardando Envio para Enviado" & vbCrLf & _
              "Dos  " & Me.TotalMudado & "  itens selecionados ?", vbQuestion + vbYesNo, Me.Caption) = vbNo Then
              Exit Sub
              Else
              Dim db As dao.Database
              Dim rs As dao.Recordset
              Set db = CurrentDb
                     
              'é nessa linha abaixo que eu estou sofrendo para a mudança de Status na tblAtendimento.
              'pois haverá escolhas aleatórias por parte do usuário final.
              Set rs = db.OpenRecordset("Select * from TblAtendimento  Where StatusOculta = '" & Me.StatusOculta & "' And [AEnvioEnviado] = True")
        'se não encontra registros, morre aqui
        If rs.RecordCount = 0 Then Exit Sub
        'coloca-se no 1º registro
        rs.MoveFirst
        'percorre todos os registros da tabela SuaTabela
        Do While Not rs.EOF
                rs.Edit
                rs("DataEnvio") = Date ' coloca a data em que foi alterado o registro.
                rs("StatusOculta") = "Enviado" ' muda o status da caixa oculta.  Não consegui mudar o texto "Enviado" da CboStatus, por isso não coloquei aqui
                rs("NaoEnviado") = False ' muda o check box para vazio ( não )
                rs("ComissaoAPagar") = True 'Muda o check box para cheio (sim)
                rs.Update
                rs.MoveNext
        Loop
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

    Me.Requery
    Me.Repaint
    Me.Oculta.SetFocus
    End If
    Me.Repaint
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  ahteixeira em Seg 23 Out 2017, 13:43

    Olá a todos,
    JPaulo a "olho" está de categoria a correr o recordset.

    Silvio, o simples uma vez que tem o campo "identificador" (True/False) na tabela:

    Código:
    Private Sub bt_alterar_Click()
        If MsgBox("Deseja alterar o status de Aguardando Envio para Enviado" & vbCrLf & _
            "Dos  " & Me.TotalMudado & "  itens selecionados ?", vbQuestion + vbYesNo, Me.Caption) = vbNo Then
            Exit Sub
        Else
            DoCmd.RunSQL "UPDATE TblAtendimento SET TblAtendimento.StatusOculta = 'Enviado', TblAtendimento.AEnvioEnviado = False WHERE TblAtendimento.AEnvioEnviado = True"
        End If
       
        Me.Refresh
        Me.Requery
        Me.Recalc
        Me.Oculta.SetFocus
    End Sub

    Abraço a todos
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Seg 23 Out 2017, 13:44

    Tópico resolvido com a  grande ajuda dos mestre....Jpaulo e Alvaro, sempre dispostos a ajudar a quem pede socorro.

    Abraços a todos e deixando aqui esse tópico pois sei que mais colegas irão passar pelo mesmo drama que eu.


    Ps....Ambos códigos funfam de maneira espetacular, sem sombras de duvidas.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Seg 23 Out 2017, 13:56

    Não abusando da boa vontade....
    Mas é possível alterar a CboStatus na rotina ?
    rs("StatusOculta") = "Enviado" ' muda o status da caixa oculta. Não consegui mudar o texto "Enviado" da CboStatus


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  ahteixeira em Seg 23 Out 2017, 14:04

    Olá amigos,

    Silvio no meu código:
    Código:
    DoCmd.RunSQL "UPDATE TblAtendimento SET TblAtendimento.StatusOculta = 'Enviado',TblAtendimento.CboStatus = 6, TblAtendimento.AEnvioEnviado = False WHERE TblAtendimento.AEnvioEnviado = True"

    No código do JPaulo
    Código:
    rs("CboStatus") = 6

    Abraço


    Última edição por ahteixeira em Seg 23 Out 2017, 16:29, editado 1 vez(es)
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  JPaulo em Seg 23 Out 2017, 14:04

    Isso acontece porque na sua tabela, o campo CboStatus começa na coluna zero (0) que é o IdStatus e que corresponde á descrição do Status.

    Então terá de ser o simples;

    Código:
    'Quando se marca a caixa no Formulário AEnvioEnviado, tenho que alterar o Status na TblAtendimento de "Aguardando Envio" para "Enviado"
    'Essa alteração ela está fazendo, o que eu não estou conseguindo é fazer com que  eu posso marcar aleatóriamente os registros e assim
    'Dar baixa, pois o usuário vai receber lotes para dar baixa de forma aleatória.


    If MsgBox("Deseja alterar o status de Aguardando Envio para Enviado" & vbCrLf & _
              "Dos  " & Me.TotalMudado & "  itens selecionados ?", vbQuestion + vbYesNo, Me.Caption) = vbNo Then
              Exit Sub
              Else
              Dim db As dao.Database
              Dim rs As dao.Recordset
              Set db = CurrentDb
                     
              'é nessa linha abaixo que eu estou sofrendo para a mudança de Status na tblAtendimento.
              'pois haverá escolhas aleatórias por parte do usuário final.
              Set rs = db.OpenRecordset("Select * from TblAtendimento  Where StatusOculta = '" & Me.StatusOculta & "' And [AEnvioEnviado] = True")
        'se não encontra registros, morre aqui
        If rs.RecordCount = 0 Then Exit Sub
        'coloca-se no 1º registro
        rs.MoveFirst
        'percorre todos os registros da tabela SuaTabela
        Do While Not rs.EOF
                rs.Edit
                rs("DataEnvio") = Date ' coloca a data em que foi alterado o registro.
                rs("StatusOculta") = "Enviado" ' muda o status da caixa oculta.  Não consegui mudar o texto "Enviado" da CboStatus, por isso não coloquei aqui
                rs("CboStatus") = DLookup("IDStatus", "TblStatus", "Status='Enviado'")
                rs("NaoEnviado") = False ' muda o check box para vazio ( não )
                rs("ComissaoAPagar") = True 'Muda o check box para cheio (sim)
                rs.Update
                rs.MoveNext
        Loop
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

    Me.Requery
    Me.Repaint
    Me.Oculta.SetFocus
    End If
    Me.Repaint
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  JPaulo em Seg 23 Out 2017, 14:06

    Como provavelmente vai ser fixo, faça como o Alvaro lhe passou e voilá.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  Silvio em Seg 23 Out 2017, 14:08

    Dizer, falar..... o que para você dois....JPaulo e Alvaro ??

    Sem palavras !!!

    Cada dia aprendo uma coisa nova com vocês !

    Grato a ambos !!


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Selecionar ou marcar aleatóriamente itens em formulário continuo

    Mensagem  ahteixeira em Seg 23 Out 2017, 16:30

    Obrigado pelo retorno.
    Abraço a todos
    cheers

      Data/hora atual: Qua 22 Nov 2017, 10:45