Visual Basic - Método Find y ¿nomatch?

Life is soft - evento anual de software empresarial
 
Vista:

Método Find y ¿nomatch?

Publicado por Amalia (26 intervenciones) el 07/05/2005 14:01:48
Hola a todos: recién estoy comenzando a trabajar con ADO, y veo que para buscar un registro se utiliza el método Find, pero cómo se que mi búsqueda ha sido existosa o no? En DAO tengo el método nomatch que me devuelve verdadero o falso según se haya encontrado el registro o no, pero en este caso no comprendo cómo determino el resultado de la búsqueda. Ayuda por favor. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Método Find y ¿nomatch?

Publicado por martin (30 intervenciones) el 10/05/2005 03:14:38
hay un capitulo aparte para eso, el nomatch te aparecia cuando utilizabas el metodo findfirst, f... y demas, pero con el find cuando no encuentra el dato buscado produce espacio en blanco, asi que en vez de nomatch tendrias que ingeniartelas para saber si la busqueda resulto en en espacio en blanco, entonces es porque no lo encuentra, ahora estoy en un ciber y no tengo a manos ese material pero te buscare un ej. para orientarte mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por Amalia (26 intervenciones) el 10/05/2005 15:28:27
Bueno, te lo agradecería mucho. Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por Rodrigo Vásquez (1 intervención) el 10/05/2005 22:51:32
Estimada Amalia, en ADO lo más optimo es utilizar sentencias SQL ya que tienen un mejor tiempo de respuesta, te doy un ejemplo de como buscar información de una BD en Access con ADO:

Sql.open "Select Nombre from personal where nombre like '% " & RAUL & "%'",cnn,adopenkeyset,adlockoptimistic,adcmdtext

if not sql.eof then
do while not sql.eof
lst_nombre.additem sql.fields(0)
sql.movenext
loop
end if
sql.close
set sql = nothing


'si tienes dudas escribeme, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por Amalia (26 intervenciones) el 12/05/2005 22:18:37
muchas gracias. salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por José López (2 intervenciones) el 27/05/2005 18:31:56
Para comprobar si ha tenido exito se puede usar esto:

If Not (Tabla.BOF Or Tabla.EOF) Then
datosactualizados.Recordset.Bookmark = Tabla.Bookmark
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por chaosoft (63 intervenciones) el 28/05/2005 00:37:52
hola amalia puedes usar esto

rs.find ("campo='" & txtvar & "'")
if rs.eof() then
messagebox"No existe"
else
lo encontro y lo puedes mostrar ya q esta en esa linea no se detuvo el cursor
end if

salu2 y suerte

ch@osoft®
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por Pepeanton (2 intervenciones) el 14/02/2006 20:05:34
Yo tuve el mismo problema pero trabajando con ADO en VBA, y utilice un código parecido al tuyo, pero simplemente no me funcionaba y aunque no encontrara ningún registro, se saltaba esta condicion, entonces al querer comparar el field del recordset con un valor me daba el error '3021', ya que no hay ningún registro activo. Una forma que se me ocurrio (aunque poco ortodoxa) fué gestionar el error
Algo así como
On error goto line1
.............
.............
rst.find ("NOMBRE = VALORINICIAL")
IF rst.eof = true then
::::::::::
::::::::::
else
rst . fields (n) = otrorst.fields(m) (aqui me producia el error, no hay registro activo, entonces salta a la linea1 y ya se que no encuentra nada)
end if
exit sub
line1:
if err.number = 3021 then
.................
.................
end sub

Pero luego descubri que con la propiedad recordset . absoluteposition puedes resolver el problema, búscalo en la ayuda interactiva para comprobar que valores devuelve cuando no hay registro activo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Método Find y ¿nomatch?

Publicado por Omer (1 intervención) el 14/02/2011 03:28:15
Quiza esto si funciona

rs.MoveFirst
rs.Find ("campo='" & txt.Text & "'")
If rs.EOF Then
Else
MsgBox "Registro encontrado", vbInformation + vbOKOnly, "Abonados"
'Puedes hacer lo que desees.
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar