VERIFICAR DADOS ANTES DE GRAVAR

XXXANGELSXXX 04/10/2009 13:34:04
#324362
Bom dia amigos, estou com um caso aqui muito bobo, que estou ate com vergonha de postar aqui para vcs.. rs rs.. seguinte, estou fazendo um sistema de agendamentos, melhor, peguei o fonte de um programador que programa em DAO, queria migrar o sistema todo para um novo banco de dados, como por exemplo SQL server que trabalho, mas sabem como é, o cliente nao quer migrar de jeito nenhum, entao to querendo fazer o seguinte, antes de eu gravar a operação quero verificar se ja contem uma informacao com aqueles mesmos dados no banco, se ja contiver nao e para fazer o update no banco, e simplesmente para ele mudar o foco para o campo, exemplo.
COLABORADOR = FERNANDO
DATA = 15/01/2000
HORA = 07:00
Se ja tiver 1 registro no banco nessas caracteristicas o sistema vai travar o update e dar a mensagem que ja existe esse horario agendado, e vai mudar para o campo de horas para a pessoa trocar a hora. olha o codigo que to tentando fazer isso.

Data1.RecordSource = [Ô]select * from movligacoes where tecnicoa=[ô][Ô] & txtColaborador.Text & [Ô][ô] and horainicio=[ô][Ô] & txtdata.Text & [Ô][ô] and datainicio = #[Ô] & Format(MCalendario.Value, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by horainicio[Ô]
Data1.Refresh
if Data1.Recordset.RecordCount <> 0 Then
MsgBox [Ô]Já existe uma ocorrência cadastrada para este colaborador nesta hora![Ô], vbInformation, [Ô]Aviso[Ô]
txtHora.SetFocus: Exit Sub
End If
else
txtAlocacao.Text = Format(Date, [Ô]dd/mm/yyyy[Ô]) & [Ô] - [Ô] & Format(Time, [Ô]hh:mm:ss[Ô])
Data1.Recordset.Update
End If

Lembrando que to usando DAO, e que os controles sao todos vinculados. Abraços a todos e ate mais.
XXXANGELSXXX 05/10/2009 08:47:12
#324411
Há, lembrando o seguinte pessoal, fazendo essa verificaçao de cima o sistema esta verificando errado, ou seja, se eu cadastro a ocorrencia para a pessoa e coloco uma hora que nao tem no banco, o sistema da a mensagem que ja existe a ocorrencia cadastrada, ou seja, independemente da verificacao ele esta gravando a informaçao no banco..
MARCELO.TREZE 05/10/2009 10:26:16
#324422
Resposta escolhida
qual é o tipo do campohora, é tipo texto?
XXXANGELSXXX 05/10/2009 10:41:37
#324424
Citação:

MARCELO-TREZE escreveu:
qual é o tipo do campohora, é tipo texto?

sim amigo, o campo hora e tipo texto, eu so formatei ele de acordo com minhas necessidades, exemplo ##:##, Há.. com relacao a isso aqui txtAlocacao.Text = Format(Date, [Ô]dd/mm/yyyy[Ô]) & [Ô] - [Ô] & Format(Time, [Ô]hh:mm:ss[Ô]), isso e um campo texto livre, nao esta em formato de data e hora nao.. ok..
MARCELO.TREZE 05/10/2009 12:29:44
#324448
você diz que o formato da hora está como ##:##

então no textbox deduz que esteja colocando algo assim 12:33 e não assim 12:33:00 pois isto pode estar ocasionando o erro.
XXXANGELSXXX 05/10/2009 13:16:32
#324453
Citação:

MARCELO-TREZE escreveu:
você diz que o formato da hora está como ##:##

então no textbox deduz que esteja colocando algo assim 12:33 e não assim 12:33:00 pois isto pode estar ocasionando o erro.

Hum amigo, nao foi isto nao, eu deixei o campo sem formatação, e mesmo assim deu a mensagem que ja havia uma informação no banco ..
XXXANGELSXXX 05/10/2009 18:14:24
#324499
Help-me please.. rs rs..
MARCELO.TREZE 05/10/2009 19:22:48
#324503
faça o teste incluindo os dados direto na query

Data1.RecordSource = [Ô]select * from movligacoes where tecnicoa=[ô]marcos[ô] and horainicio=[ô]01:13:00[ô] and  datainicio = #10/05/2009# order by horainicio[Ô]

Data1.Refresh
XXXANGELSXXX 05/10/2009 20:49:22
#324514
Citação:

MARCELO-TREZE escreveu:
faça o teste incluindo os dados direto na query

Data1.RecordSource = [Ô]select * from movligacoes where tecnicoa=[ô]marcos[ô] and horainicio=[ô]01:13:00[ô] and  datainicio = #10/05/2009# order by horainicio[Ô]

Data1.Refresh

Amigo, saquei o que ta pegando, veja bem : tenho um botao INCLUIR, quando clico nele, ele executa o comando DATA.RECORDSET.ADDNEW, antes de gravar se coloco para pesquisar, exemplo DATA.RECORDSOURCE=[Ô]SELECT ... ETC... [Ô], ele automaticamente grava a informaçao no banco, ou seja, o select força a gravaçao no banco de dados, eu queria fazer so essa tela desvinculada .. ai nao daria esse problema, mas veja so.. usar uma tela apenas em ADO e o resto tudo DAO, é osso, sera que alguem pode me dar uma luzinha???? valeuuuss..
MARCELO.TREZE 05/10/2009 20:53:31
#324515
posta o código deste botão incluir
XXXANGELSXXX 06/10/2009 08:41:15
#324548
Citação:

MARCELO-TREZE escreveu:
posta o código deste botão incluir




Private Sub Form_Load()
Data1.RecordSource = ([Ô]select * from movligacoes where MovStatus = [ô][Ô] & [Ô]Pendente[Ô] & [Ô][ô] and datainicio = #[Ô] & Format(MCalendario.Value, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by datainicio[Ô])
Data1.Refresh
End Sub

Private Sub MCalendario_DateClick(ByVal DateClicked As Date)
Data1.RecordSource = ([Ô]select * from movligacoes where MovStatus = [ô][Ô] & [Ô]Pendente[Ô] & [Ô][ô] and datainicio = #[Ô] & Format(MCalendario.Value, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by datainicio[Ô])
Data1.Refresh
End Sub

Private Sub Tool1_ButtonClick(ByVal ButtonIndex As Integer, ByVal ButtonKey As String)
Select Case ButtonIndex
Case 7
[ô]Inclusão de Registros
Data1.Recordset.AddNew
txtDInicial.Text = MCalendario.Value

With frmProcCli
.Tool1.ButtonVisible(7) = False
.Tool1.ButtonVisible(8) = False
.Tool1.ButtonVisible(9) = False
.Show 1
End With

Case 9
[ô]Gravar Registros
If txtColaborador.Text = Empty Then
txtStatus.Text = [Ô]Em Espera[Ô]
Else
txtStatus.Text = [Ô]Pendente[Ô]
End If
If txtColaborador.Text <> [Ô][Ô] And Text1.Text <> [Ô][Ô] Then

Data1.RecordSource = ([Ô]select * from movligacoes where MovStatus = [ô][Ô] & [Ô]Pendente[Ô] & [Ô][ô] and datainicio = #[Ô] & Format(MCalendario.Value, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by datainicio[Ô])
Data1.Refresh

if data1.RecordCount <> 0 Then
MsgBox [Ô]Já existe uma ocorrência cadastrada para este colaborador nesta hora![Ô], vbInformation, [Ô]Checkup Service[Ô]
txtHora.SetFocus: Exit Sub
else
txtAlocacao.Text = Format(Date, [Ô]dd/mm/yyyy[Ô]) & [Ô] - [Ô] & Format(Time, [Ô]hh:mm:ss[Ô])
Data1.Recordset.Update
End If
End If
End Select
End Sub

Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas