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


2 participantes

    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo.

    avatar
    dori
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 22/04/2016

    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. Empty [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo.

    Mensagem  dori 26/8/2024, 13:45

    Bom dia, Amigos!
    Podem me ajudar a desenvolver esse código?

    Eu tenho esse formulário abaixo de desempenho escolar por matéria, no exemplo, "MATEMÁTICA".
    As notas são de 0 a 10. Quando o formulário é carregado, a caixa de listagem abre filtrando sempre na maior nota obtida exibindo os alunos correspondentes.
    Eu preciso de um código que, ao clicar na seta à esquerda ou à direita, as notas sejam decrementadas ou incrementadas e a caixa de listagem exiba
    os alunos correspondentes conforme as notas forem alterando ao clicar das setas.
    Caso não haja alunos com nota sete(7), por exemplo, pule para a nota imediatamente anterior ou posterior.
    Para facilitar, parte do BD está anexado.
    Grato pela força.

    Dorival J. - São Paulo-SP

    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. Exempl14
    Anexos
    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. AttachmentBD-MATEMÁTICA.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (119 Kb) Baixado 22 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. Empty Re: [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo.

    Mensagem  Alexandre Neves 1/9/2024, 19:41

    Boa tarde
    Substitua o seu código por este
    Código:
    Option Compare Database

    Sub SubListaDesempenho()
        ListaDesempenho.RowSource = "SELECT * FROM TabMatematica WHERE Nota=" & txtNotaObtida
        ListaDesempenho.Requery
    End Sub

    Private Sub btNotaAnterior_Click()
        Dim Rst As DAO.Recordset
        Set Rst = CurrentDb.OpenRecordset("SELECT DISTINCT Nota FROM TabMatematica ORDER BY Nota")
        Rst.FindFirst "Nota=" & txtNotaObtida
        Rst.MovePrevious
        If Rst.BOF = False Then txtNotaObtida = Rst("Nota"): SubListaDesempenho
    End Sub

    Private Sub btProximaNota_Click()
        Dim Rst As DAO.Recordset
        Set Rst = CurrentDb.OpenRecordset("SELECT DISTINCT Nota FROM TabMatematica ORDER BY Nota")
        Rst.FindFirst "Nota=" & txtNotaObtida
        Rst.MoveNext
        If Rst.EOF = False Then txtNotaObtida = Rst("Nota"): SubListaDesempenho
    End Sub

    Private Sub btSalvar_Click()

          If IsNull(Me.comboNomeAluno) Or Me.comboNomeAluno = "" Then
                  MsgBox " O campo Aluno é  de preenchimento obrigatório", vbInformation, "Atenção"
                  Me.comboNomeAluno.SetFocus
                  Me.comboNomeAluno.BorderColor = 1245
          ElseIf IsNull(Me.txtNota) Or Me.txtNota = "" Then
                  MsgBox " O campo Nota é  de preenchimento obrigatório", vbInformation, "Atenção"
                  Me.txtNota.SetFocus
                  Me.txtNota.BorderColor = 1245
                 
          Exit Sub
          ElseIf Me.txtNota > 10 Then
                  MsgBox " O valor máximo da nota não pode ser superior a 10 .", vbExclamation, "Atenção"

                  Me.txtNota = ""
                  Me.txtNota.SetFocus
          Exit Sub
          Else
           
          Dim db As Database
          Dim rs As DAO.Recordset

          Set db = CurrentDb()
          Set rs = CurrentDb.OpenRecordset("TabMatematica")

                  rs.AddNew

                  rs!ID_Aluno = Me.txtID_Aluno
                  rs!NomeAluno = Me.comboNomeAluno
                  rs!Nota = Me.txtNota
                  rs.Update

                  MsgBox " Aluno '" & Me.comboNomeAluno & "' adicionado aos alunos com nota " & Me.txtNota & "", vbInformation, "Atenção"
                  Me.comboNomeAluno.SetFocus
                  Me.comboNomeAluno = ""
                  Me.txtNota = ""

                  rs.Close
          Set rs = Nothing
                  db.Close
          Set db = Nothing
         
          Me.txtNotaObtida = DMax("Nota", "TabMatematica")
          Call SubListaDesempenho
                               
          If DCount("*", "TabMatematica") >= 1 Then
                  Me.txtID_Aluno = DMax("txtID_Aluno", "TabMatematica") + 1
          End If
         
          Me.txtTotalDeAlunos = DCount("ID_Aluno", "TabMatematica")
          Me.ListaDesempenho.Requery
          Me.txtTotal = [ListaDesempenho].[ListCount]
    End If
    End Sub

    Private Sub comboNomeAluno_AfterUpdate()
          Me.txtNota.SetFocus
    End Sub

    Private Sub comboNomeAluno_Click()
    On Error Resume Next
                  Dim intNotaDeAvaliacao As Integer
                  intNotaDeAvaliacao = DLookup("Nota", "TabMatematica", "NomeAluno = '" & Me.comboNomeAluno & "'")
         
                  If DCount("NomeAluno", "TabMatematica", "NomeAluno ='" & Me!comboNomeAluno & "'") > 0 And intNotaDeAvaliacao < 5 Then
                        MsgBox "'" & Me!comboNomeAluno & "' já foi avaliado(a) com a péssima nota '" & intNotaDeAvaliacao & "'", vbExclamation, "Atenção"
                        Me.comboNomeAluno = ""
                        Me.comboNomeAluno.SetFocus
                  ElseIf DCount("NomeAluno", "TabMatematica", "NomeAluno ='" & Me!comboNomeAluno & "'") > 0 And intNotaDeAvaliacao >= 5 Then
                        MsgBox "'" & Me!comboNomeAluno & "' já foi avaliado(a) com nota '" & intNotaDeAvaliacao & "'", vbExclamation, "Atenção"
                        Me.comboNomeAluno = ""
                        Me.comboNomeAluno.SetFocus
                  End If
    End Sub

    Private Sub comboNomeAluno_LostFocus()
                  Me.comboNomeAluno.BorderColor = False
    End Sub

    Private Sub Form_BeforeInsert(Cancel As Integer)
                  If DCount("*", "TabMatematica") < 1 Then
                        Me.txtID_Aluno = 1
                  Else
                        Me.txtID_Aluno = DMax("ID_Aluno", "TabMatematica") + 1
                  End If
    End Sub

    Private Sub Form_Load()
         
                        DoCmd.Maximize
                        DoCmd.Restore
                        Me.comboNomeAluno.RowSource = "SELECT TabAlunos.NomeAluno FROM TabAlunos ORDER BY TabAlunos.NomeAluno;"

                        Me.txtNotaObtida = DMax("Nota", "TabMatematica ")

                  If DCount("*", "TabMatematica") < 1 Then
                        Me.txtID_Aluno = 1
                  Else
                        Me.txtID_Aluno = DMax("ID_Aluno", "TabMatematica") + 1
                  End If
                 
                        Call SubListaDesempenho
                        Me.txtTotalDeAlunos = DCount("ID_Aluno", "TabMatematica")
                       
                        Me.txtTotal = [ListaDesempenho].[ListCount]
                 
    End Sub

    Private Sub txtNomeAluno_LostFocus()
          Me.comboNomeAluno.BorderColor = False

    End Sub

    Private Sub txtNota_LostFocus()
          Me.txtNota.BorderColor = False

    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    dori
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 22/04/2016

    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. Empty Re: [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo.

    Mensagem  dori 2/9/2024, 13:48

    Excelente, Alexandre ! cheers
    Exatamente isso.

    Brigadão, cara. Por isso que eu sou fã desse Fórum. Very Happy

    Conteúdo patrocinado


    [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo. Empty Re: [Resolvido]Atualizar caixa de listagem ao navegar pelos botões anterior e próximo.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 11:40