none
Access 2003: búsqueda en form, selección de registro y llevarlo a otro form RRS feed

  • Pregunta

  • Hola a todos!

    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:

    1. clientes (id, nombre, DNI, fono, etc) -> Un maestro de clientes.
    2. cotizaciones (número, fecha, idcliente) -> Un maestro de cotizaciones.
    3. 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.googlegroups.com/web/FILTRADOR4.rar?gda=Ad...

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

    Esteban.
    • Tipo cambiado Estebanape lunes, 18 de octubre de 2010 12:53
    lunes, 18 de octubre de 2010 12:51

Todas las respuestas

  • 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]
    miércoles, 20 de octubre de 2010 10:07