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
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


0