PROBLEMAS CON CONSULTAS, ME AYUDAIS?

AURI
03 de Noviembre del 2003
Hola a todos!Tengo problemillas con consultas y no me queda muy claro por que, ya que funcionan a ratos.
1ª) Buscar clientes por DNI y por nombre.
La consulta por DNI funciona bastante bien hasta que realizo varias consultas seguidas, utilizando boton cmdnuevaconsulta. Las 2 primeras las hace bien y despues me da error 3021 en tiempo de ejecucion no hay registros activos. La consulta por nombre (Busca dentro de una frase la palabra nombre) no me hace ni caso, a veces, y otras veces me muestra el primer registro del campo, pero no el seleccionado, sino el de codigo 0001, y siempre el mismo. Respecto a que si no los encuentra me mande un msgbox, ya no se donde colocarlo porque o se me queda colgado, o me muestra el msgbox("No se encuentra cliente") a la vez que me muestra los datos. Y hoy por si fuera poco hoy le da por decirme que else esta solo sin bloque if.
Esto es lo que hago en clik de boton cmdconsultar:
If Chknif.Value = 1 Then
For i = 1 To rsclientes.RecordCount
nif = txtdatos.Text
If rsclientes!nifcliente.Value = nif Then
muestramedatos
Exit For
Else
i = i + 1
rsclientes.MoveNext

End If
Next
End If
If Chknombre.Value = 1 Then
For i = 1 To rsclientes.RecordCount
nombre = txtdatos.Text
If rsclientes!NombreFiscalCliente.Value = " & nombre & " Then
muestramedatos
Exit For
Else
i = i + 1
rsclientes.MoveNext

End If
Next
End If
2º) tengo un list view y un text box, en los que quiero que cuando me muestren los datos, a la vez me hagan las siguientes consultas: que me muestre en el listview otros proyectos con el mismo cliente buscandolo por si codigo, y que aparezca el nombre del cliente tambien buscandolo por su codigo.
En el primer caso me muestra la lista de codigos de todos los proyectos , y en el segundo me muestra el nombre del primer registro pasando de mi olimpicamente.
Esto es lo que hago en el form_load:
Set rsverclientes = dbsoltec.OpenRecordset("Select * from CLIENTES where 'IdCliente='" & Txtcodcliente.Text)
Set rsverproyectos = dbsoltec.OpenRecordset("Select * from PROYECTO where 'IdCliente='" & Txtcodcliente.Text)
Do While Not rsverproyectos.EOF
Lstotrosproyectos.AddItem rsverproyectos!IdProyecto.Value
rsverproyectos.MoveNext
Loop
Do While Not rsverclientes.EOF
Txtfiscal.Text = rsverclientes!NombreFiscalCliente.Value
rsverclientes.MoveNext
Loop

Espero haberme explicado bien. Un beso a todos

mcdowell
03 de Noviembre del 2003
no ley el codigo completo pero por el error que me das 3021 no hay registro activo, la solucion esta en realizar de nuevo la consulta es decir, select * from tablar y despues hacer tu seleccion de criterios

Baltasar
03 de Noviembre del 2003
Para volver a cargar el recordset, te bastaría con hacer Mirecordset.requery

Hay un tema que quería comentarte: en el primer punto de tu mensaje, realizas una búsqueda muy primitiva, no crees? No sería más sencillo y rápido hacer un select que te devolviese los clientes con un nif específico?
Saludos.