Visual Basic - Recordcount, bof, eof (consulta vacia)

Life is soft - evento anual de software empresarial
 
Vista:

Recordcount, bof, eof (consulta vacia)

Publicado por sandra (8 intervenciones) el 30/06/2006 12:08:32
Hola a todos, despues de leer y probar mil cosas que he visto en mil foros, no entiedo porq no me funciona algo tan simple como comprobar si una consulta no tiene registros...
es decir, tengo una aplicacion en visual basic que me conecta con una base de datos en mysql, me conecto por odbc y hago consultas y todo bien...

Pero cuando tengo una consulta q no me devuelve ningun registro no me hace caso y no hace nada o no se lo que hace....

Yo declaro lo siguiente:
Private Sub Escribe_L01(RS1 As ADODB.Recordset)
Dim RS2 As ADODB.Recordset
Dim RS3 As ADODB.Recordset
Dim RS4 As ADODB.Recordset
asi declaro los recordrset

luego

EstablecerRS RS3, "select * from xx where xx.a in(6,8,12,15) and xx.b= " & RS1!xx
RS3.MoveFirst
While Not RS3.EOF

longitud6 = longitud6 + Len(RS3!a) + 2
cadena = cadena & RS3!a & ", "


EstablecerRS RS4, "select nombre from yy where yy.a=" & RS3!b
RS4.MoveFirst
Do While Not RS4.EOF
longitud7 = longitud7 + Len(RS4!nombre)
cadena = cadena & RS4!_nombre
RS4.MoveNext
Loop

RS3.MoveNext

CerrarRS RS4

Wend

CerrarRS RS3
Todo esto funciona a la perfeccion mientras la consulta tenga registros.....
en el caso q no tenga y por tanto no me devuelva ningun registro a partir de ahi no hace nada....
El caso q
EstablecerRS RS3, "select * from xx where xx.a in(6,8,12,15) and xx.b= " & RS1!xx
sea vacio
habia puesto para controlar esto lo siguiente
If RS10.BOF = True Then
MsgBox ("no hay")
End If
y ademas he puesto antes de abrir el recordset lo de
RS3.CursorLocation = adUseClient
para hacerlo con if RS3.Recordset=0 then
msgbox("no hay")
pero nada pasa de esto tambien....

ya q de esta tema se ha discutido mucho, pero igual de tantas vueltas q le ha dado ya me estoy rallando y no veo lo que estoy mal.... agradeceria cualquier consejo y ayuda...
de antemano muchas 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:Recordcount, bof, eof (consulta vacia)

Publicado por sandra (8 intervenciones) el 30/06/2006 14:42:18
Ya esta claro,
La unica forma de comprobar si una consulta no tiene registros es:
if rs.BOF=true and rs.EOF=true then
++++++
else
xxxxx
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

RE:Recordcount, bof, eof (consulta vacia)

Publicado por Antonio Valdebenito S. (1 intervención) el 25/07/2006 19:30:28
dim bd as new adodb.connection
dim reg as new adodb.recordset
on error goto errores
consulta=" select * from tabla where codigo = '" & val(textcodigo.text) &"'"
reg.open consulta,bd, adopenkeyset,adlockoptimistic,adcmdtext
if recordset.recordcount= -1 then
msgbox reg!campo_de_la_tabla
endif
reg.close
todos los recordcount de recordset en mysql = -1
errores:
if err.number = 3021 then
msgbox " No se encontraron registros"
exit sub
endif
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