¿Cómo controlo los registros en blanco en un formulario de búsqueda en el programa Microsoft Access?

Hola, mi problema es que tengo un formulario de búsqueda y hay datos que relleno y datos que no. En la consulta igualo los campos de la tabla a los cuadros independientes del formulario de búsqueda y me sale si introduzco todos los datos, pero si dejo alguno en blanco no me sale, ¿qué debería pone en criterios? Saludos y muchas gracias
1

1 Respuesta

19.850 pts.
Vamos a ver para tu problema hay varias formas de solucionarlo, como casi siempre. Tampoco sé muy bien como haces la consulta, pero bueno, si la haces directamente cuando abres el formulario docmd. Openform "",,, criterios
Pues lo que puedes hacer es que antes de que vayas a introducir el valor de criterios pues puedes utilizar sino tienes demasiados cuadros independientes a rellenar, la instrucción, if isnull(campo)=true then no lo incluyen en criterios.
O también puedes poner sino te funciona esto que if campo="" then...
No se, puedes probar esto, sino te funciona o no es lo que tu esperabas me lo dices y ya encontraremos otra solución.
Pues mira yo he puesto este código al abrir el formulario y no me sale...
Private Sub Form_Open(Cancel As Integer)
Dim F As Form
Set F = [Forms]![Formulario Busqueda]
Dim sql As String
sql = "SELECT * FROM Edificios"
If Not IsNull(F![Accesos]) Then sql = sql & " AND Edificios.ACCGRAD = '" & F![Accesos] & "'"
If Not IsNull(F![Interior]) Then sql = sql & " AND Edificios.INTGRA = '" & F![Interior] & "'"
If Not IsNull(F![Plantas]) Then sql = sql & " AND Edificios.ACPGRA = '" & F![Plantas] & "'"
If Not IsNull(F![Tipo]) Then sql = sql & " AND Edificios.EDITIP = '" & F![Tipo] & "'"
If Not IsNull(F![Año Edificacion]) Then sql = sql & " AND Edificios.AÑO = '" & F![Año Edificacion] & "'"
If Not IsNull(F![Caracter]) Then sql = sql & " AND Edificios.EDICAR = '" & F![Caracter] & "'"
If Not IsNull(F![Aparcamiento]) Then sql = sql & " AND Edificios.APAGRA = '" & F![Aparcamiento] & "'"
If Not IsNull(F![Localidad]) Then sql = sql & " AND Edificios.EDICP = '" & F![Localidad] & "'"
Me.RecordSource = sql
End sub
Perdona mi tardanza pero es que estuve un poco liado con los exámenes.
Bueno acabo de echarle un vistazo a tu código y a simple vista me a sorpredido que en la instrucción sql no aparece por ningún lado el comando WHERE que es necesario para especificar los criterios de coincidencia.
Como seguramente no sabrás cual de los campos será el primero que coloques (que sera delante de este donde deberás colocar el WHERE), pues esto lo puedes controlar creándote una variable que te diga si ya lo has puesto o aún no, la cual deberás yendo comprobando en cada if que utilizas.
Es que sino se me van acumulando.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas