Como crear un formulario con un subformulario donde escriba el id_cliente

Tengo una tabla clientes, con id_cliente, y otra tabla Incidencias (que se puede repetir, varias veces), lo que quiero es que en un formulario pueda introducir el id_cliente, me salga el campo Nombre y luego pueda introducir los datos de incidencias y que estas asociadas al id_cliente se queden ordenadas por fechas y claro esta que para cada cliente pueda haber varias incidencias.

1 Respuesta

Respuesta
2

Lo puedes hacer de muchas formas. Vamos a suponer que la tabla Incidencias tiene también IdCliente.

1º Con ella sola, crea un formulario(da igual único o continuo). Luego en vista diseño del formulario cambia el cuadro de texto Idcliente por un combinado. En sus propiedades-datos-origen de la fila puedes poner

select idcliente,nombrecliente from clientes

Y en sus propiedades-formato-número de columna ponle 2 y en ancho de las columnas ponle

0;6

Así, cuando "abras" el combinado verás el nombre pero lo que realmente "guardas" es el Idcliente. Luego si quieres que te "rellene" algún datos más siempre puedes usar la función Dlookup. De todas formas, teniendo el Idcliente, en cualquier lugar puedes tener el resto de datos.

2º Combinando ambas tablas. Si están relacionadas por el Idcliente, cuando vayas a hacer el formulario y subformulario con el asistente, ya te quedan relacionadas, por tanto ya no te hará falta el Idcliente en el subformulario.

En cualquiera de los dos casos, ¿qué luego quieres ordenarlos por fecha? también puedes hacer muchas cosas, por ejemplo, poner un botón( no es necesario pero sirve para el ejemplo) y en sus propiedades-eventos-al hacer click creas un procedimiento de evento y entre Private Sub y End Sub pones

form.recordsource="select * from incidencias order by fechaincidencia"

Es que quiero escribir el id_cliente

Buscar (escribir) el cliente y que me devuelva el nombre.

No quiero que me muestre todos, que yo pueda escribir 528 y que me rellene "Pepe Perez" en el campo Nombre y Apellidos

¿Dónde quieres escribirlo, en el formulario o en el subformulario?

Lo normal es que, en todo caso, lo escribas en el formulario porque el subformulario estará relacionado con el subformulario por el idcliente.

Por ejemplo, tengo una tabla Clientes

Acuérdate de los datos del 4 y tengo un formulario Incidencias

Si en Idcliente escribo 4 y pulso enter

El código del evento Después de actualizar del cuadro de texto Id es

En caso de que lo que quisieras es que, teniendo el formulario Clientes con el subformulario Incidencias, en el formulario escribas un id y te "lleve" al registro de ese cliente para anotar las incidencias, puedes usar

form.recordsource="select * from cliente where idcliente=" & me.nombredelcuadrodetexto & ""

Pero personalmente creo que es más fácil acordarse del nombre de un cliente que de un Id que no dice nada.

Hola, me estoy haciendo un poco de lio, te adjunto pantalla 

1.- No coge bien el nombre del cliente. AAA es el nombre del cliente 3 y no lo cambia

2.- En incidencias no me deja poner el formulario en nuevo para escribir y además necesito que por ID_CLIENTE haya incidencias varias.

Ahora le he puesto fecha incidencia como clave principal y no me guarda el dato del ID_CLIENTE, me lo deja a 0.

No sé si me explico.

A la vista de la imagen

1º El formulario y el subformulario no están relacionados

2º Al no poder ver como está construido el combinado me da la impresión de que en el código estás haciendo referencia al valor que te muestra no al verdadero nombre del combinado que aparece en sus propiedades-otras-nombre

3º Si el Idcliente ya lo tienes en el formulario ¿para qué lo quieres en el subformulario? Es redundante y en esto se trata de trabajar lo menos posible.

Mira, si quieres, repito, si quieres mándame un mensaje(SOLO EL MENSAJE) a [email protected] y te preparo un ejemplo con tus datos. Si lo haces, en el asunto del mensaje pon tu alias Arancha, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas