¿Access - Autocompletar en tablas - como hago?

Estoy necesitando un poco de ayuda con este tema. Paso a describir mi situación.
Tengo una tabla de ordenes de cotización con Id proveedor y razón social del proveedor. Por otro lado tengo una tabla de proveedores con Id proveedor y razón social proveedor. Lo que necesito es que a través de un formulario se me autocomplete, con el Id proveedor, en la tabla de ordenes de cotización la razón social o nombre de proveedor. Es decir, a través del formulario se me complete en la tabla de ordenes de cotización.
Tengo hecha una relación entre las tablas mencionadas, pero no se como hacer para que se me autocomplete con los datos de la tabla de proveedores, la info en la tabla de ordenes de cotización...
¿Es posible?
Respuesta
1
No tengo muy claro lo que quieres decir con "Autocompletar" en tablas, si tienes una tabla de proveedores que tiene una ID y la razón social del proveedor y tienes una tabla de ordenes de cotización debes crear una "Consulta" (Query) que contenga ambas tablas que tengan un "Inner Join" por el ID de proveedor en esa "Consulta" (Query) puedes tener los datos de las ordenes de cotización y traerte de la tabla proveedores la razón social del proveedor.
Ahora allí no esta "Autocompletando" esta haciendo una "Consulta" (Query) que trae información de las dos tabla "Proveedores" y "Ordenes de Cotización" por un "Inner Join"
Si creas un formulario o reporte que tenga como origen de datos esa "Consulta" (Query) allí puedes tener datos de ambas tablas
¿Sabes crear "Consultas" (Query) que usen un "Inner Join" en access por el campo ID del proveedor?
Bueno, en primer lugar muchas gracias por la respuesta.
Primero te comento un poco mejor que quiero hacer:
1- Yo tendo en la tabla de proveedores lo siguiente: Id proveedor: 1 y razón social: xxxx SA
2- Cuando cargue una orden de cotización quiero usar un cuadro combinado para encontrar el id de proveedor al que le pedí la cotización pero quiero que en el otro campo, basándose en ese id me autocomplete con el nombre del proveedor (ese campo estaría en la tabla de cotizaciones y es el titulado "razón social proveedor").
Es decir: si mi en mi nueva orden pongo en el campo id proveedor: 1, que el access me ponga automáticamente el xxxx SA en el otro campo con el nombre. Así no lo tengo que completar yo. Quedando en la tabla de ordenes de cotización el id y el nombre del proveedor.
¿Esto es lo que puedo hacer con la consulta?
no se como hacer la consulta con inner join! No se que es tampoco.
¿Me lo explicarías por favor? Te lo agradecería mucho!
Muchas gracias!
Disculpa por complicarte un poco con el concepto de "Inner Join", pero ahora tengo más claro que necesitas vamos a verificarlo:
1- Quieres que en un formulario donde cargas la orden de cotización aparezca un cuadro combinado que tenga el ID de proveedor y que al seleccionarlo te traiga la razón social del proveedor. OK
2- Una vez que selecciones el ID de proveedor del cuadro combinado quieres que en un cuadro de texto aparezca la razón social del proveedor. OK
Primero debes crear una "Consulta" (Query) de la tabla de Proveedores que contengan 2 campos de esa tabla "ID proveedor" y "Razón Social del Proveedor" y la llamas "Consulta1".
Luego te vas a ir al formulario donde cargas la orden de cotización y vas a crear un cuadro de texto llamado "Text1". (Asumo que sabes usar la barra de herramientas de Access)
Seguidamente vas a crear un cuadro combinado, luego que insertes el cuadro combinado el asistente de Access te va a preguntar si quieres que el cuadro combinado traiga valores de una tabla o consulta seleccionas la opción consulta.
Luego seleccionas la consulta "Consulta1", seleccionas los 2 campos que aparecen "ID proveedor" y "Razón social del proveedor", seleccionas para ordenar el campo "ID proveedor", te va a mostrar la consulta con todos los registros que encontró y luego marcas el campo "ID proveedor" como el campo que va a ser seleccionado por el cuadro combinado, por ultimo en el nombre de etiqueta colocas "ID proveedor" y finaliza la generación del cuadro combinado.
Tienes ahora que seleccionar el cuadro combinado y con el botón derecho del ratón selecciona la opción "generar evento" (build event) y luego seleccionas "Generar Código" (Code Bilder) te va a parecer el editor de vba y el cursor va estar en el procedimiento:
Private Sub Combo1_BeforeUpdate(Cancel As Integer)
Aquí va a estar el cursor...
End Sub
En el editor de vba vas a ver arriba de donde esta el cursor 2 combobox el que esta a la derecha el que tiene seleccionado el evento BeforeUpdate; de allí selecciona ahora el evento AfterUpdate (esta de primero muévete con el scroll bar a la primera fila que tiene ese combo) una vez que lo selecciones el cursor va a estar en el procedimiento
Private Sub Combo1_AfterUpdate()
aquí va a estar el cursor...
End Sub

Escribe allí este código
Text1 = Combo1.Column(1)
Debe quedar así:
Private Sub Combo1_AfterUpdate()
Text1 = Combo1.Column(1)
End Sub

Salva y cierra el formulario y vuelve a abrirlo selecciona del cuadro combinado el ID de proveedor que quieras y en el cuadro de texto "Text1" debe aparecer la razón social del proveedor correspondiente.
Es algo complicado pero funciona,
Bueno, hice todo lo que me dijiste pero me sale un error cuando selecciono el id de proveedor de la lista.
Disculpa mi ignorancia sobre el tema lo que pasa es que empecé a manejar access hace poco.
Hay un par de cosas que no me quedan claras igual.
1- En que me puede ayudar que me tire el resultado en el cuadro de texto, es decir, si hago eso, ¿se me va a completar en el campo que tengo de la tabla? Porque esto lo estoy haciendo desde el formulario.
2- ¿El cuadro combinado lo tendría que relacionar con el campo id de proveedor no?
Para no complicarte mucho, porque la verdad aprecio mucho el trabajo que te tomaste al contestar esta duda. Si quieres pásame un mail así te puedo mandar la base de datos que tengo y por ahí me ayudas un poco más directamente. Si es mucha molestia no hay problema, hiciste bastante para que pueda entender!
Muchas gracias nuevamente!
No hay problema enviame el mdb espero que este en Access 2003 por que es la única version que puedo manejar desde aquí al correo [email protected]
Enviala en un archivo winrar para que pese menos, si no puedes envía el mdb con las dos tablas "Proveedores" y "Ordenes de Cotización" y el formulario, espero que no tengas muchos datos, desde aquí tratare de cambiar lo que necesitas y te lo reenvío
Suerte
Creo que no me vas a poder ayudar mucho más porque tengo la base de datos en access 2007! Pero no importa, si veo que sigo sin poder te preguntare por mail. Muchas muchas gracias por tu ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas