Formulario, realizar una búsqueda, selección y posterior edición del registro

18/10/2010 - 06:26 por tebitoo | Informe spam
Hola a todos! Luego de mucho tiempo vuelvo a los grupos ya que me
salió un problema que no he conseguido resolver:

Estoy creando una sencilla (que ya no me parece tan así..) BD en
Access 2003 para un sistema de cotizaciones (similar a uno de
facturación). Tengo 3 tablas:

- clientes (id, nombre, DNI, fono, etc) -> Un maestro de clientes.
- cotizaciones (número, fecha, idcliente) -> Un maestro de
cotizaciones.
- detalles ( cotizacion, producto, cantidad, valor unitario) -> Un
detalle de los productos de las cotizaciones.

Crearé un formulario para "cotizaciones" con un subformulario con
"detalles" en él, relacionados por el número de la cotización. Y uno
de los campos de cotizaciones sería "DNI" que proviene de "clientes"
al seleccionarlo el resto de los campos del cliente se llamarían
automáticamente.

Ahora mi problema: en caso que el usuario desconozca el DNI del
cliente me gustaría crear un botón de "Buscar" para que lo seleccione
de un segundo formulario (emergente) con la lista de clientes y
posteriormente vuelva al formulario principal con ése registro ya
seleccionado en el campo DNI.

¿Cómo puedo hacerlo? El botón de "Buscar" y la llamada al formulario
con la lista es sencillo, pero seleccionar el registro y que lo tome y
lo asigne al campo DNI del formulario principal me parece complicado y
no se me ocurre una solución.

Vi en la base de datos Neptuno un ejemplo, pero el problema es que se
seleccionaba el proveedor (en ése caso) de una lista desplegable y esa
forma no me gusta mucho ya que en algún momento se hace tan larga la
lista que es incómodo dar tanto scroll para llegar al usuario que
deseas. En el formulario emergente pienso agregar una función de
búsqueda que vi acá:

http://mvp-access-archivos.googlegr...QM8uFkDGgO

Espero haberme explicado bien, porque al parecer fui bastante
extenso. Muchas gracias de antemano por sus consejos!

Esteban.
 

Leer las respuestas

#1 José Mª Fueyo
19/10/2010 - 16:41 | Informe spam
Hola
Supongamos que el formulario donde rellenas los datos se llama
frmClientes y que el cuadro de texto que quieres rellenar con el valor
que busques se llama txtDNI. Asímismo, en el formulario de búsqueda
pon un cuadro que muestre el valor del DNI.
Abre el formulario donde buscas como acDialog (parámetro WindowMode
del método OpenForm del objeto DoCmd). Asímismo, configura éste
formulario de búsqueda como emergente y modal, y oculta los botones de
maximizar, minimizar y cerrar. Crea un par de botones de aceptar y
cacelar. Este último configúralo para simplemente cerrar el
formulario.
En el botón de aceptar, pon éste código

Me.Visible = False
Forms("frmCliente").Controls("txtDNI").Value = Me.txtDNI.Value
DoCmd.Close acForm, Me.Name

Salu2
José Mª Fueyo
[MS MVP Access]

Preguntas similares