• Domingo 22 de Diciembre de 2024, 14:32

Autor Tema:  Re: RecordCount  (Leído 2208 veces)

JuanPi

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: RecordCount
« en: Lunes 15 de Abril de 2002, 01:18 »
0
Hola, tengo un problema para mostrar un mensaje cuando hago una
consulta Sql y no encuentra ninguna coincidencia, o lo que es lo
mismo cuando no devuelve ningún resultado. Me gustaria poder mostrar
un mensaje diciendo que no se han encontrado coincidencias a la
consulta pero no se el modo de hacerlo.

El método que estoy usando es el siguiente :

resultados = rstConsulta.RecordCount
Select Case resultados
Case Is > 1
Label15.Caption = resultados & " resultados encontrados."
Case Is = 1
Label15.Caption = "Un solo resultado encontrado."
Case Else
Label15.Caption = "No se han encontrado coincidencias."
End Select

Cuento los registros y en función del número de estos pongo un
mensaje u otro, pero cuando no me devuelve ningún registro no veo
manera de detectarlo, no sé que devuelve recordcount, e probado con
0, con -1 y nada, puse un textbox donde me mostrase el número de
registros que devolvia, pero cuando hacia una consulta en la que no
devolvia ninguno no me mostraba nada en dicho textbox.

Hay algún método para hacer esto?

Gracias por su atención.

Saludos!

Juan.
:)

vgeta

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: RecordCount
« Respuesta #1 en: Miércoles 17 de Abril de 2002, 15:53 »
0
muchas veces es extraño pero no funciona el recordcount, asi que para evitar problemas tomo el SQL y :
a=0
do while not rec.EOF
    a=a+1
rec.movenext
loop
y tengo la cantidad de registro
es algo poco tecnico pero funciona bien

Jairo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: RecordCount
« Respuesta #2 en: Jueves 18 de Abril de 2002, 01:03 »
0
Ya leyo la ayuda del MSDN???.. Aqui le mando cómo y porque no le funciona!!

La propiedad RecordCount NO indica cuantos registros están contenidos en un objeto Recordset de tipo Dynaset, Snapshot o Forward-only hasta que se tenga acceso a TODOS los registros. Una vez que se haya accedido al último registro, la propiedad RecordCount indica el número total de registros no eliminados en el objeto Recordset o TableDef. Para forzar que se accede al último registro, utilice el método MoveLast en el objeto Recordset.

Si entendio???, lo que quiere decir lo anterior es que el recordcount SOLO le indica cuantos registros tiene su recordset una vez usted ha llegado al ULTIMO registro de ese recordset.. ve???

Un pequeño ejemplo a ver si le ayuda ok??:

Suponga que tiene un control Data1 y va a hacer una consulta cualquiera y necesita devolver el numero de registros segun la consulta hecha.. de acuerdo??

mySQL ="SELECT * FROM Tabla WHERE Nombre LIKE '*carlos';"
Data1.RecordSource = mySQL
Data1.Refresh
If Data1.Recordset.BOF And Data1.Recordset.EOF Then
    MsgBox "No se encontraron registros!"
Else
    Data1.Recordset.MoveLast
    Data1.Recordset.MoveFirst
    MsgBox "Se han encontrado " & Data1.Recordset.RecordCount & " Registros!"
End If

Listo???.. si tiene no entiende me comenta, creo que está todo muy CLARO no??

Isla Programacion

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
    • http://www.islaprogramacion.com
RecordCount
« Respuesta #3 en: Domingo 21 de Abril de 2002, 17:59 »
0
Hola:

Vgeta, como comentas anteriormente, RecordCount a veces no funciona bien, ésto no es del todo cierto, si funciona bien, el problema radica en que tienes que rellenar el recorset con los datos y esto no sucede hasta quel el puntero recorra los registros. Poner un movelast basta para que esto suceda. Asi que mi consejo es que antes de un RecordCount se haya realizado al menos un MoveLast.

Saludos.
[img=196x28]http://www.islaprogramacion.com/imagenes/utiles/islaprogramacionbl.gif[/img]