Notifications
Clear all

Cadastro de Provas e Verificação antes de Lança

8 Posts
2 Usuários
0 Reactions
2,257 Visualizações
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Boa tarde!

Estou tentando fazer uma verificação de provas lançadas.
Exemplo:
Aluno4 foi cadastrado que fez a prova no dia 16/05/2016.
Ae faz de conta que esqueci que lancei esta prova já.
Exemplo:
Aluno4 datadaprova 16/05/2016
Aluno4 datadaprova 16/05/2016
Quero que ele não deixe eu lançar datas repetidas das provas.
Obs.
(chave primaria) e o nome do aluno4 e data da prova e o segundo critério.

Agradeço quem puder ajudar!

 
Postado : 16/05/2016 11:38 am
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Eu não sei se e o certo mais fiz assim!

crie um botão e coloquei este código

Dim ComandoSQL As String
    
    ComandoSQL = "select * from tabela_clientes"
    Call Conecta
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    While Not consulta.EOF
            
            If consulta(2) = txt_dtprova.Text Then
            If consulta(1) = txt_nome.Text Then
            MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
            Me.txt_dtprova = ""
            Me.txt_dtprova.SetFocus
            Call Desconecta: Exit Sub
            Else
            End If
            End If
            consulta.MoveNext
     Wend

Fiz os teste de 3 maneiras!

Exemplo 1:
Aluno 1 datadaprova 17/11/2013 aparece a mensagem "prova cadastrada"
Aluno 1 datadaprova 17/05/2016 nada acontece " esta ok isso por ser datadaprova nova"

Exemplo 2:
Aluno 1 datadaprova 17/11/2013 aparece a mensagem "prova cadastrada"
Aluno 1 datadaprova 17/05/2016 nada acontece " esta ok isso por ser datadaprova nova"
Aluno 2 datadaprova 17/11/2013 "pra ver se ele esta comparando nome do aluno e datadaprova se são iguais" nada acontece esta ok porque o aluno não tem esta datadaprova com essa data.

No meu entender acho que esta certo mas se os mestre poder dar umas dicas fico feliz em aprender!

 
Postado : 17/05/2016 8:10 am
(@tarcelles)
Posts: 61
Trusted Member
 

Boa noite.

Não testei seu codigo jonasjtg, mais acho que funciona. Porém caso tenha muito dados salvos na tabela_cliente, a consulta vai se tornar lenta, por que você esta trazendo tudo que tem lá.
Tente passar os critérios da busca no SQL que seja chave primária e utilize a matricula do aluno para verificação e não nome..

Ex:

ComandoSQL="SELECT * FROM tabela_clientes WHERE DATA_PROVA=#" & Format(me.txt_dtprova.text, "mm/dd/YYYY") & "# AND MATRICULA=" & ME.txt_nome.Text & ""
Set consulta = banco.OpenRecordset(ComandoSQL)

IF NOT CONSULTA.EOF
MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
Me.txt_dtprova = ""
Me.txt_dtprova.SetFocus
END IF

 
Postado : 17/05/2016 3:07 pm
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Obrigado Tarcelles por responder!

Tentei testar seu código e coloquei assim:

Private Sub CommandButton1_Click()
Dim ComandoSQL As String
    
    ComandoSQL = "SELECT * FROM tabela_clientes WHERE DATA_PROVA=#" & Format(Me.txt_dtprova.Text, "dd/mm/YYYY") & "# AND MATRICULA=" & Me.txt_nome.Text & ""
    Call Conecta
    Set consulta = banco.OpenRecordset(ComandoSQL)

While Not consulta.EOF
            MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
            Me.txt_dtprova = ""
            Me.txt_dtprova.SetFocus
            Call Desconecta: Exit Sub
            consulta.MoveNext
     Wend
End Sub

E deu erro escrito assim:
Erro em tempo de execução '3061':
Parâmetros Insuficientes. Eram esperados 3.

Se tiver como continuar me ajudando agradeço bastante.

 
Postado : 17/05/2016 8:25 pm
(@tarcelles)
Posts: 61
Trusted Member
 

No seu banco de dados com este SQL ai pra funcionar

DAta - Formato data/hora
Matricula = Numero

 
Postado : 19/05/2016 11:00 am
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Ai tarcelles blz!

Não entende o que vc disse!

Mas mudei o código testa forma fico melhor caso for muitos dados?

Private Sub CommandButton1_Click()

Dim ComandoSQL As String

ComandoSQL = "select * from tabela_clientes where nome = '" & txt_nome.Text & "'"

Call Conecta
Set consulta = banco.OpenRecordset(ComandoSQL)

While Not consulta.EOF

If consulta(2) = txt_dtprova.Text Then
MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
Me.txt_dtprova = ""
Me.txt_dtprova.SetFocus
Call Desconecta: Exit Sub
Else
End If
consulta.MoveNext
Wend
End Sub

 
Postado : 20/05/2016 12:34 am
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Pessoal já faz um tempo to tentando e não estou conseguindo fazer o código!

Olhando o código a baixo ele não deixa cadastrar com a mesma data o que eu quero e que não deixe também cadastra no mesmo mês:
Exemplo:

Aluno 1 datadaprova 17/05/2016 aparece a mensagem "Prova Já foi cadastrada"
Aluno 1 datadaprova 18/05/2016 Deve aparecer prova já foi feita este mês.

Private Sub CommandButton1_Click()

Dim ComandoSQL As String

ComandoSQL = "select * from tabela_clientes where nome = '" & txt_nome.Text & "'"

Call Conecta
Set consulta = banco.OpenRecordset(ComandoSQL)

While Not consulta.EOF

If consulta(2) = txt_dtprova.Text Then
MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
Me.txt_dtprova = ""
Me.txt_dtprova.SetFocus
Call Desconecta: Exit Sub
Else
End If
consulta.MoveNext
Wend
End Sub

Quem puder ajudar agradeço!

 
Postado : 24/05/2016 11:36 am
(@jonasjtg)
Posts: 43
Eminent Member
Topic starter
 

Bom dia pessoal!

Apos a ajuda do basole deu certo! (Muito Obrigado)!

Para aqueles que precisar segue o código para estudo!
Não sei se da pra fazer melhor se quiserem dar suas opiniões fiquem a vontade.

Private Sub CommandButton1_Click()

Dim ComandoSQL As String

ComandoSQL = "select * from tabela_clientes where nome = '" & txt_nome.Text & "'"

Call Conecta
Set consulta = banco.OpenRecordset(ComandoSQL)

While Not consulta.EOF

If consulta(2) = txt_dtprova.Text Then
MsgBox "Prova já foi cadastrada. Verifique! ", 64, "ATENÇÃO":
End if

txt_dtprova.Text = "" Then Exit Sub

If VBA.Month(consulta(2)) = VBA.Month(txt_dtprova.Text) Then
MsgBox "Prova já foi feita este mês.. Verifique! ", 64, "ATENÇÃO":

Me.txt_dtprova = ""
Me.txt_dtprova.SetFocus
Call Desconecta: Exit Sub

End If
consulta.MoveNext
Wend
End Sub

 
Postado : 25/05/2016 9:39 am