Campo de búsqueda en formulario
Los expertos, ante todo agradeceros vuestra colaboración y vuestra ayuda a nosotros los novatos en esto.
Mi pregunta es la siguiente:
Tengo un formulario para introducir datos con los siguientes campos IdRFQ, Descripción, Año, IdCliente, todos ellos de la tabla RFQ. El campo IdCliente está unido a la tabla_Clientes de la siguiente manera:
SELECT CLIENTES.IdCliente, CLIENTES.COMPAÑÍA FROM CLIENTES ORDER BY CLIENTES.[COMPAÑÍA];
Tod funciona perfectamente y se vuelcan los a la tabla correspondiente y cuando llego al campo IdCliente abro un desplegable del cual puedo elegir el cliente correspondiente y si este no está en la lista tengo la opción de abrir el formulario CLIENTES y crear ese nuevo cliente, que instantáneamente se me actualiza.
El problema es que la lista de clientes es interminable y a veces tardo mucho en buscar el cliente correspondiente, o busco no por el nombre completo sino sólo por una parte, por lo que no lo encuentro y acabo duplicando ese cliente.
Mi intención es que en ese campo me permita escribir alguna parte del nombre del cliente y la lista quede reducida a todos aquellos clientes que contengan esa parte, por ejemplo, si al teclear "Jua" aparezcan todos los clientes que en su nombre completo contengan esas letras, es decir, que acote la búsqueda y no todos los clientes de la tabla. No sé que estoy haciendo mal, pues he probado varias cosas y sólo consigo o que el desplegable se quede en blanco o que me aparezca el IdCliente en lugar del nombre de este.
Debe ser alguna instrucción con LIKE, pero no sé cómo expresarlo, dónde ni cómo.
Por otro lado, también necesitaría algún consejo para crear una instrucción para que si por error me dejo en blanco el campo Año me salte un mensaje "El campo año está vacio_ Debe rellenarlo" y no me deje salir del formulario o grabar ese registro hasta que no se haya completado, pero en la tabla RFQ no quiero que este campo sea obligatorio. También tengo alguna idea de como hacerlo, pero no mucha. Debe ser algo como esto:
If Año_Vacio then
Msgbox "El campo año está vacio_ Debe rellenarlo"
Pero no consigo que me funcione.
Mi pregunta es la siguiente:
Tengo un formulario para introducir datos con los siguientes campos IdRFQ, Descripción, Año, IdCliente, todos ellos de la tabla RFQ. El campo IdCliente está unido a la tabla_Clientes de la siguiente manera:
SELECT CLIENTES.IdCliente, CLIENTES.COMPAÑÍA FROM CLIENTES ORDER BY CLIENTES.[COMPAÑÍA];
Tod funciona perfectamente y se vuelcan los a la tabla correspondiente y cuando llego al campo IdCliente abro un desplegable del cual puedo elegir el cliente correspondiente y si este no está en la lista tengo la opción de abrir el formulario CLIENTES y crear ese nuevo cliente, que instantáneamente se me actualiza.
El problema es que la lista de clientes es interminable y a veces tardo mucho en buscar el cliente correspondiente, o busco no por el nombre completo sino sólo por una parte, por lo que no lo encuentro y acabo duplicando ese cliente.
Mi intención es que en ese campo me permita escribir alguna parte del nombre del cliente y la lista quede reducida a todos aquellos clientes que contengan esa parte, por ejemplo, si al teclear "Jua" aparezcan todos los clientes que en su nombre completo contengan esas letras, es decir, que acote la búsqueda y no todos los clientes de la tabla. No sé que estoy haciendo mal, pues he probado varias cosas y sólo consigo o que el desplegable se quede en blanco o que me aparezca el IdCliente en lugar del nombre de este.
Debe ser alguna instrucción con LIKE, pero no sé cómo expresarlo, dónde ni cómo.
Por otro lado, también necesitaría algún consejo para crear una instrucción para que si por error me dejo en blanco el campo Año me salte un mensaje "El campo año está vacio_ Debe rellenarlo" y no me deje salir del formulario o grabar ese registro hasta que no se haya completado, pero en la tabla RFQ no quiero que este campo sea obligatorio. También tengo alguna idea de como hacerlo, pero no mucha. Debe ser algo como esto:
If Año_Vacio then
Msgbox "El campo año está vacio_ Debe rellenarlo"
Pero no consigo que me funcione.
1 Respuesta
Respuesta de sir_drake
1