COMO ESCRIBIR SI UNA QUERY NO TIENE RESULTADO??? URGE.... GRACIAS

jmlabernia
10 de Diciembre del 2004
HOLA A TODOS,

COMO PUEDO ESTABLECER QUE SI AL EJECUTAR UNA INSTRUCCIÓN SQL Y MI SGBD (SQL SERVER) NO ENCUENTRA RESULTADOS, SE ME BIFURQUE EL PROGRAMA POR UN LADO? ES DECIR, CUAL SERÍA LA CONDICIÓN BOOLEANA DEL IF?? ESTE ES MI CÓDIGO:

Private Sub Command2_Click()
' Por si ya estaba abierta...
Set cnn = Nothing
Set rst = Nothing

' Crear los objetos
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset

' abrir la base usando las credenciales de Windows
cnn.Open "Provider=SQLOLEDB; " & _
"Initial Catalog=Prueba; " & _
"Data Source=PORTATIL_CHM; " & _
"integrated security=SSPI; persist security info=True;"

' abrir el recordset indicando la tabla a la que queremos acceder


Set rst = cnn.Execute("select id_alumno, passw from alumnos where id_alumno='" & Text1.Text & "' and passw='" & Text2.Text & "'")
id_alumno = Text1.Text
passw = Text2.Text
If rst.EOF = True And rs.BOF = True Then
Unload Me
Form12.Show
rst.Close
Else
Form16.Hide
Form20.Show
rst.Close

End If
End Sub

QUIZÁS CON SEEK Y CON LA noMatch SERÍA POSIBLE, XO LA VERDAD ES QUE NO SE COMO HACERLO.... ALGUIEN ME PUEDE AYUDAR?? MUCHAS GRACIAS!!!

mamerto
10 de Diciembre del 2004
Aqui hay dos cuestiones, primero verifica que se cree el recordset, es decir,

if rst is nothing then
msgbox "objeto no creado"
else
if rst.eof and rst.bof then
msgbox "No hay datos en esta tabla"
else
me.text1.text = rst.fields"campo1"
endif
endif

con esto verificas que el recordset exista, ya si esta vacio o no es otra cosa. bye