Autocompletar campos en access

Tengo una duda y me esta matando! Espero poder disponer de algunos minutos de tu tiempo para ver si me podes ayudar!
Te comento mi situación:
- Tengo una base de datos con dos tablas (son más pero quiero focalizar el problema). Una es de pedidos de cotización y otra de proveedores.
- Hice los formularios correspondientes para cada una de las tablas.
- Campos:
Proveedores: Id proveedos, nombre proveedor
Cotizaciones: Id cotización, fecha, Id proveedor, nombre proveedor
-Las tablas están relacionadas en id proveedor.
El tema es el siguiente: cuando cargo una cotización con el formulario quiero que: poniendo el id proveedor (ej:4) se autocomplete con el nombre de ese proveedor que figura en la otra tabla (ej: xxxx SA). Es decir, que en mi tabla original de cotizaciones con el campo de nombre de proveedor, aparezca xxxx SA sin tener que ponerlo a mano (sacando este dato de la tabla de proveedores).
¿Es posible lo que quiero?
¿Se me entiende cuando lo explico? Porque hace poco empecé a manejar access.

1 respuesta

Respuesta
2
Si se puede, una de ellas es creando como base de tu formulario una consulta_base. En la misma vas a colocar todos los datos de la tabla Cotizaciones, y solo el campo 'nombre proveedor' de la tabla Proveedores (relacionando el idProveedor de Proveedores y el IdProveedor de Cotizaciones) y utilizar esta consulta como origen de control para tu formulario. El tipo de recordset debe ser Dynaset.
Otra manera es en un evento 'Al actualizar' del campo idproveedor de tu formulario, pero por medio de código. En ella debes obtener el Id del proveedor en una variable, hacer una consulta "select nombre proveedor from proveedores where IdProveedor = " & IdProveedor & "" y llevar el resultado del recordset al campo 'nombre proveedor' de tu tabla.
Prueba con el primero, luego podemos ver el siguiente.
Bueno, en primer lugar muchas gracias por la respuesta!
Lo acabo de hacer de la primer forma que me dijiste pero el tema con esta es que cuando ingreso el id proveedor que necesito me arroja el nombre del proveedor pero no me lo pone en el campo que yo preciso. Es decir, en la tabla de cotizaciones no me aparece el nombre de proveedor en el campo del mismo, donde si me aparece es en el campo de la consulta que acabo de generar. Lo que yo necesito es que me aparezca en el campo de cotizaciones, ¿se me entiende? ¿O te mareo? Je je. (No se bien como explicar esto).
Y otra cosa: "recordset debe ser Dynaset". No se que es recordset ni dynaset.
¿Tienes idea como puedo lograr lo que quiero?
Primero, cambia el nombre de tu campo 'Nombre proveedor' de tu tabla Cotizaciones, por ejemplo por 'Nombre_del_Proveedor' o como mejor te parezca. Utiliza también este campo en tu consulta base, entonces al cargar el IdProveedor, te traerá el Proveedor de la tabla Proveedores (hasta aquí todo ok según me comentaste, pero hace falta que los datos de éste te los mande a tu nuevo campo 'Nombre_del_Proveedor').
Ahora, y una vez hecho lo de arriba, desde la 'Lista de Campos' arrastra el campo 'Nombre_del_Proveedor' de tu tabla Cotizaciones al formulario, pon como propiedad Visible 'No', y en el evento 'Al hacer click' del botón guardar agrega las lineas:
'-----------------------
Dim Proveedor as string
Proveedor = Me.Nombre proveedor 'obtiene el nombre del proveedor desde la tabla proveedor que no cambiamos de nombre el campo
Me.Nombre_del_Proveedor = Proveedor 'inserta en el campo 'Nombre_del_Proveedor de tu tabla cotizaciones el nombre de tu proveedor segun el IdProveedor
'-------------------------
Discupa pero no entiendo como hacerlo...
Le cambio el nombre al campo de cotizaciones. Agrego ese campo al formulario.
Luego lo pongo como no visible pero me pierdo con el evento, encuentro la solpa de eventos y la que dice al hacer click pero me pierdo con lo que me decís de donde escribir esas lineas que me pasaste...
Disculpa la molestia pero me trabe!
1. Cambia el nombre de tu campo 'Nombre proveedor' de tu tabla Cotizaciones, por ejemplo por 'Nombre_del_Proveedor' o como mejor te parezca.
2. Utiliza este campo en tu consulta base con el nombre cambiado, entonces al cargar el IdProveedor, te traerá el Proveedor de la tabla Proveedores (hasta aquí todo ok según me comentaste, pero hace falta que los datos de éste te los mande a tu nuevo campo 'Nombre_del_Proveedor').
3. Ahora, y una vez hecho lo de arriba, desde la 'Lista de Campos' arrastra el campo 'Nombre_del_Proveedor' (que corresponde a tu tabla Cotizaciones pero que está en tu consulta base) al formulario, pon como propiedad Visible 'No'.
4. Crea un botón con el asistente para guardar los cambios de registros, luego en modo diseño aún, haz click derecho sobre el botón, propiedades, pestaña 'eventos', 'al hacer click' (procedimiento de evento), click en el cuadro [...], y lo de abajo:
(te va salir algo parecido a: Private Sub boton_Click ..... End Sub)
y entre esas lineas de Private Sub y End Sub colocas lo de abajo
'-----------------------
Dim Proveedor as string
Proveedor = Me.Nombre proveedor 'obtiene el nombre del proveedor desde la tabla proveedor que no cambiamos de nombre el campo
Me.Nombre_del_Proveedor = Proveedor 'inserta en el campo 'Nombre_del_Proveedor de tu tabla cotizaciones el nombre de tu proveedor segun el IdProveedor
'-------------------------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas