Como completar campo de formulario con registro ubicado en combobox dentro de otro formulario - Access

Pues bien aquí liado con esta preguntilla.
Mi intención por si no he sido de lo más claro con mi pregunta es la siguiente:

Tengo un formulario llamado "Planning", el cual contiene un campo de texto que quiero rellenar con un registro desde otro formulario. De lado del campo de texto he puesto un botón que hace la llamada del formulario "Proveedores", con un combo box dentro. Mi intención es que pueda escoger el registro al hacer doble clic sobre alguno de ellos y por supuesto así rellanar el cuadro mencionado.

Siempre en el entorno Access 2007.

Respuesta
1

En el evento Al hacer click de tu combobox (llamémosle cboNomProveedor) del formulario Proveedores, le generas el siguiente código:

Forms("Planning").txtProveedor=Me.cboNomProveedor

Si quieres cerrar el formulario Proveedores, le añades:

DoCmd. Close acForm, Me. Name

He supuesto que el cuadro de texto se llama txtProveedor.

Saludos!


Un nuevo espacio dedicado a Access, visítanos: http://nksvaccessolutions.com/ 

¡Gracias Rojo!

Eres la leche, oye...abusando de tu amabilidad a ver si me pasas un cable con esto, cuando realizo doble clic sobre el registro que deseo del combo proveedor, en lugar de rellenar con el nombre de proveedor, me rellena con el Id, por supuesto la idea es seguir manteniendo visible el id de proveedor en el cuadro para mayor orientación del usario.

Gracias nuevamente!!!!

Enrique Pasos

¡Gracias Rojo!

Eres la leche, oye...abusando de tu amabilidad a ver si me pasas un cable con esto, cuando realizo doble clic sobre el registro que deseo del combo proveedor, en lugar de rellenar con el nombre de proveedor, me rellena con el Id, por supuesto la idea es seguir manteniendo visible el id de proveedor en el cuadro para mayor orientación del usario.

Gracias nuevamente!!!!

Prueba así (o con el separador que prefieras):

Forms("Planning").txtProveedor=Me.cboNomProveedor & " -" & Me.cboNomProveedor.Column(1)

Hey Rojo, gracias nuevamente por tu paciencia, aquí he puesto lo siguiente:

Private Sub CmbProveedor_DblClick(Cancel As Integer)
Forms("Planning").txtProveedor = Me.CmbProveedor & " - " & Me.CmbProveedor.Column(1)
DoCmd.Close acForm, Me.Name
End Sub

Me ha arrojado lo siguiente:

"Se ha producido el error ´-2147352567 (80020009)´en tiempo de ejecución:

El valor que ha especificado no es válido para este campo.

Alguna idea?
Gracias.

Vas tener que explicarme mejor qué es lo que tienes y qué es lo que quieres, porque de otra forma poder estar así para siempre...

Mis dudas:

1º/ En el formulario Planning, ¿el campo que quieres rellenar (txtProveedor) qué tipo de datos almacena (número, texto...)?

2º/ En el formulario Proveedores, ¿el cuadro combinado (CmbProveedor) qué origen de la fila tiene? ¿Cuántas columnas?

3º/ ¿Qué es lo que quieres que te guarde exactamente en txtProveedor (ponme un ejemplo)?

Bien Rojo, paso a explicarme mejor:

1) Texto

2) Dos columnas (idproveedor y nombre)

3) ej.:

idProveedor Nombre
          1 Halcourier
          2 Chronoexpress
          3 Seur

Escoger proveedor 2 y que rellene txtProveedor con Chronoexpress.
Espero haber sido algo más claro.

Gracias Rojo!

Pues no te había entendido yo bien... pensé que querías el id y el nombre del proveedor...

Así te debiera funcionar:

Private Sub CmbProveedor_DblClick(Cancel As Integer)
Forms("Planning").txtProveedor = Me.CmbProveedor.Column(1)
DoCmd.Close acForm, Me.Name
End Sub

Hola Rojo, nuevamente gracias por tu aporte. Verás que le he dado para arriba y abajo con el asunto pero no logro dar con la respuesta. Sigue con el error:

"Se ha producido el error ´-2147352567 (80020009)´en tiempo de ejecución:

El valor que ha especificado no es válido para este campo.

He intentado cambiar el origen de la fila pero nada de nada.

Alguna sugerencia?
Gracias Rojo.

Ese error es rarísimo...

Si con el primer código te funcionaba bien (cuanto te pasaba el Id), ahora te tiene que funcionar igual, pero pasando el nombre del proveedor (que está en la columna 2 del combo).

Eso me sigue haciendo pensar que el campo en que guarda los datos tu cuadro de texto es de tipo numérico...

Rojo, una vez más eres el gran maestro. Pues bien no he me querido pasar de vago, comencé a escudriñar allí dentro de las tablas, y bien el error estaba como bien sugerías, había guardado una relación de manera incorrecta, id numérico con texto. Solo tocó borrar la relación cambiar el tipo de dato a ingresar y listo!

Muchas gracias Rojo por tu seguimiento!
Aplausos para ti!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas