ROTINA DE BLOQUEIO EM DUPLICIDADE DE DADOS

DAMASCENO.CESAR 26/08/2015 20:08:53
#450534
esqueci de avisar!! essa parte que coloquei, usa o codigo do JABA e coloca no [txt-color=#e80000]segundo if[/txt-color]
MILTONSILVA94 28/08/2015 07:33:50
#450592
O problema não está ao chamar a rotina de ALTERAÇÃO.
A real dificuldade está na parte por exemplo de eu inserir um registro nº [ô]1[ô] com uma determinada [ô]data = 25/08/15[ô]. Quando entro na tela de alteração e tipo se eu só entrar no formulário e alterar outros dados deste formulário e este campo [ô]data[ô] eu nem mexer e deixar o mesmo valor = [ô]25/08/15[ô], o mesmo vai me apresentar erro por causa da rotina que coloquei acima na descrição, porém no registro atual ao salvar a alteração, ele nao poderia considerar aquela regra de verificar no Banco de Dados se o registro já consta lá.
Consegui esclarecer?
DAMASCENO.CESAR 05/10/2015 15:33:06
#452170
posta seu codigo todo pra poder dar uma olhada melhor, pois não vi onde vc chama as rotinas, só vi as rotinas de alteração e a rotina de teste
NILSONTRES 19/03/2016 23:33:00
#459506
A questão ai é so identificar se é uma edição ou se a data antes de editar é a mesma no momento de salvar.

Ao clicar no botão editar, variavel editando=true, variavel dataehorariocarregado=10/10/2016 12:55:10
Na hora de salvar, então se variavel editando=true e variavel dataehorariocarregado<>data atual, então faz a validação .
DAMASCENO.CESAR 20/03/2016 17:14:33
#459521
o problema está aqui
Citação:

If lTBAgendamentos.EOF = True Then
[ô]MensagemDoSistema [Ô][ô]Data[ô] e [ô]Horário[ô] não estão cadastrados![Ô]
Else
MensagemDoSistema [Ô]Campos [ô]Data[ô] e [ô]Horário[ô] já encontram-se cadastrados, verifique antes de salvar![Ô]
cboHorario.ListIndex = 0
cboHorario.SetFocus
Exit Sub
End If


você está usando o exit sub
se o registro existe voce sai da rotina antes desta parte

Citação:

If gsAgendamentos = [Ô]N[Ô] Then
RotinaDoisInserirAgendamento
Else
RotinaDoisAlterarAgendamento
End If


no form de alteração, você não pode sair da rotina após o teste
e outra coisa, não vi onde voce passa o valor para gsAgendamentos
MILTONSILVA94 20/01/2017 15:33:40
#470895
Citação:

:
o problema está aqui
If lTBAgendamentos.EOF = True Then
[ô]MensagemDoSistema [Ô][ô]Data[ô] e [ô]Horário[ô] não estão cadastrados![Ô]
Else
MensagemDoSistema [Ô]Campos [ô]Data[ô] e [ô]Horário[ô] já encontram-se cadastrados, verifique antes de salvar![Ô]
cboHorario.ListIndex = 0
cboHorario.SetFocus
Exit Sub
End If
você está usando o exit sub
se o registro existe voce sai da rotina antes desta parte

If gsAgendamentos = [Ô]N[Ô] Then
RotinaDoisInserirAgendamento
Else
RotinaDoisAlterarAgendamento
End If
no form de alteração, você não pode sair da rotina após o teste
e outra coisa, não vi onde voce passa o valor para gsAgendamentos



Deu certo, obrigado
MILTONSILVA94 23/01/2017 23:29:22
#470965
Reativei o tópico!
Volto aqui neste tópico para compartilhar com vocês que agora a pouco por alguns minutos estava pensando em como podia esclarecer este assunto com o intuito de criar alguma coisa que serviria para evitar salvar algum registro duplicado no modo de novo/alteração (caso possa servir de adaptação para algum colega). Dentro da minha [ô]RotinaSalvar[ô] no formulário acrescentei apenas 2 linhas a mais de código fonte e acrescentei um pouco de código dentro do lsql:

Dim GuardaIdUsuario As Integer [ô]Declarei a variável
GuardaIdUsuario = txtIdUsuario.Text [ô]Variável que guarda o id_atual do campo text que está na tela aberto

If (txtLogin.Text) <> [Ô][Ô] Then [ô]Início do IF
lsql = [Ô]SELECT * FROM USUARIOS WHERE id_usuario <> [Ô] & (GuardaIdUsuario) & [Ô] AND login = [ô][Ô] & ComApostrofo(txtLogin.Text) & [Ô][ô][Ô] [ô]Sql que verifica se tem dados duplicados e não considera o registro id_atual

Desta forma era exatamente o que eu queria e o interessante que foi só parar por alguns minutos que brilhou...
O que acharam?
Ficou bom?

Comentem....
Irei deixar o tópico em aberto por algumas horas para ouvir sugestões e depois volto para encerrar...
NICKOSOFT 24/01/2017 07:12:05
#470968
A inclusao ok
A atualizacao nao permite pq consulta e ja encontra c essa data e horario o proprio registro q vc tenta altera, entao vc tem q fazer o update se nao encontrar a data e horario, excluindo dessa busca o registro atual
Acho super simples assim, e ja fiz num agendamento de emprestimo de locais, com verificacao inclusive se um novo agendamento nao ficava dentro de outro, tipo sala1 em uso hj das 8 as 17, tento agendar algo na sala1 das 9 as 10, nao deixa tmb, mesmo nao batendo horario, mas estando dentro de um período
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas