Buscaacento
Hola soy antonio domínguez, otra vez. Te escribo para comentarte que si se pone la función Yaexiste siempre encuentra una cadena en la base de datos que coincide y es que se encuentra a sí misma. El código sin ese error queda así. Supongo que no es una solución muy elegante pero así funciona. Si hay otra cosa m, ejor simelo y así lo aprendo y si hay que pagarte por consultas me lo dices también. Ante todo muchas gracias. Ahí va:
Private Sub Comando7_Click()
Dim repe As Boolean
repe = Yaexiste(Me.Apellidos, Me.Nombre) 'se le pasa a la funcion los campos nombre y apellidos actuales del formulario
If repe Then
MsgBox "ya existe un cliente con ese mismo nombre y apellido"
End If
End Sub
Function Yaexiste(NApellidos, NNombre) As Boolean
Dim mibd As Database, mirec As Recordset, criteria As String, flag As Integer
Set mibd = CurrentDb()
Set mirec = mibd.OpenRecordset("Tabla1", dbOpenSnapshot)
criteria = "[Apellidos] & [Nombre] Like '" & Buscaacent(NApellidos & NNombre) & "'"
mirec.MoveFirst
mirec.FindFirst criteria
If Not mirec.NoMatch Then
mirec.FindNext criteria
If Not mirec.NoMatch Then
Yaexiste = True
Else
Yaexiste = False
End If
End If
End Function
Dudas:
1.- Quiero que no tenga que pulsar ningún botón para que se ejecute este procedimiento, sino que actualñice la base y lo ponga en marcha la base solita. HE pensado en que cuando el enfoque este en añadir o en una textbox se ejecute, no se si es lo mejor.
Gracias
Private Sub Comando7_Click()
Dim repe As Boolean
repe = Yaexiste(Me.Apellidos, Me.Nombre) 'se le pasa a la funcion los campos nombre y apellidos actuales del formulario
If repe Then
MsgBox "ya existe un cliente con ese mismo nombre y apellido"
End If
End Sub
Function Yaexiste(NApellidos, NNombre) As Boolean
Dim mibd As Database, mirec As Recordset, criteria As String, flag As Integer
Set mibd = CurrentDb()
Set mirec = mibd.OpenRecordset("Tabla1", dbOpenSnapshot)
criteria = "[Apellidos] & [Nombre] Like '" & Buscaacent(NApellidos & NNombre) & "'"
mirec.MoveFirst
mirec.FindFirst criteria
If Not mirec.NoMatch Then
mirec.FindNext criteria
If Not mirec.NoMatch Then
Yaexiste = True
Else
Yaexiste = False
End If
End If
End Function
Dudas:
1.- Quiero que no tenga que pulsar ningún botón para que se ejecute este procedimiento, sino que actualñice la base y lo ponga en marcha la base solita. HE pensado en que cuando el enfoque este en añadir o en una textbox se ejecute, no se si es lo mejor.
Gracias
1 respuesta
Respuesta de jbchea
1