|
Postada em 05/09/2005 18:43 hs
Olá Pessoal... Coloquei no eventos LOSTFOCUS p/ não aceitar duplicidade no campo (TEXTBOX) o nome dos clientes cadastrado, mas toda vez que vou incluir um cliente o sistema dispara e lhe informa que já existe um cliente cadastrado. Sendo que ainda nem incluir... Já verifiquei no banco (Access) e nada. O disparo só acontece no ato que vou Incluir e/ou movimentar os registros... O que há de errado? Já tentei c/ os três, citados abaixos e nada... '--------------------------------------------------------------------------------- Private Sub txtCliente_LostFocus() If Trim$(txtCliente) = "" Then Exit Sub Set TblCliente = BD.OpenRecordset("TblCliente", dbOpenTable, False) TblCliente.Index = "Cliente" TblCliente.Seek "=", txtCliente.Text If TblCliente.NoMatch = True Then Else MsgBox txtCliente.Text & ", Já existe este cliente cadastrado no Banco de Dados.", vbCritical, "Cliente" txtCliente.SetFocus End If End Sub '--------------------------------------------------------------------------------- Private Sub txtCliente_LostFocus() Set TblCliente = BD.OpenRecordset("tblCliente", dbOpenTable) TblCliente.Index = "Cliente" ' Campo Indexado (O mesmo deverá passar em branco ou nulo) TblCliente.Seek "=", txtCliente.Text ' verifica se o que foi digitado existe If TblCliente.NoMatch = True Then 'O cliente existe Exit Sub Else MsgBox txtCliente.Text & ", Já existe este cliente cadastrado no Banco de Dados.", vbCritical, "Cliente" txtCliente.SetFocus End If End Sub '--------------------------------------------------------------------------------- Private Sub txtCliente_LostFocus() Dim sSQL As String Dim r As Recordset sSQL = "SELECT Cliente FROM tblCliente WHERE (Cliente = " & Chr(34) & txtCliente & Chr(34) & ");" Set r = BD.OpenRecordset(sSQL, dbOpenSnapshot) If Not r.BOF Then 'Existe registros na tabela, ou seja, encontrou clientes com o nome digitado MsgBox txtCliente.Text & ", Já existe este cliente cadastrado no Banco de Dados.", vbCritical, "Clientes" txtCliente.SetFocus Exit Sub End If End Sub '--------------------------------------------------------------------------------- Grato, Robson´s
|
|
|
|
|
Postada em 06/09/2005 08:24 hs
Faça a mesma coisa só que no evento Validate.
|
|
|
|
Postada em 08/08/2009 23:50 hs
' Fiz assim de deu certo RS.Open "CadCliente", CnSql, 1, 3 If txtNome.Text = RS.Fields("Nome") Then MsgBox Me.txtNome & ": já esta Cadastrado ! ", vbMagenta, " Sisnews Informações" txtNome.SetFocus SelecionaTexto txtNome End If RS.Close
|
|
|
|
Postada em 10/08/2009 08:29 hs
Amigo, incrivel, mas acontece cada uma, já tive este problema, me parece que ao perder o foco voce manda o foco para o mesmo text, e o evento LostFocus (não sei porque) não aceita,ai mostra esta pane. Voce pode resolver isto da seguinte forma: Com uma variavel True ou False, quando chegar o foco no proximo controle, se for True continua se for False retorna o Foco p/ o nome. Agora isto no evento GotFocus. vlu//
|
|
|
|