Relacionar dos campos en un formulario dentro otro

Quisiera ver si me puede ayudar, tengo dos campos relacionados dentro de un formulario principal. Ejemplo en dependencia de la provincia que escojan, son los municipios que obtengo, eso lo logro, y lo mismo me sucede con otro formulario cuando realizo la relación entre otros dos campos como son País y embajadas, pero cuando coloco un formulario principal y dentro uno secundario no lo logro.

1 respuesta

Respuesta
1
Entiendo que el campo que pones, está en el formulario principal y el resultado (campo dependiente) lo quieres en el subformulario.
Si es así, pon en Propiedades, Eventos, AlCambiar del Cuadro combinado donde seleccionas Provincia, el siguiente código.
Private sub CuadroCombinado1_Change()
Dim Sql As String
Dim CampoIncio As String
CampoIncio = Me.CuadroCombinado1.Value
Sql = "SELECT TPoblacion.Provincia, TPoblacion.Municpio, TPoblacion.Habitantes" _
+ " FROM TPoblacion" _
+ " WHERE TPobalcion.Provincia=""" + CampoInicio + """;"
Formularios!NombreDelSubformulario.RecordSource = (Sql)
Exit Sub
End Sub
Esto lo que hace es cambiar el origen de datos del subformulario según la provincia que escojas, es como un filtro pero desde el origen.
Hola, gracias nuevamente por la rapidez con que me contestar es encantador trabajar con personas así, parece que sigo sin explicarme correctamente y ciertamente necesito acabar el sistema y eso es lo único que me falta, en el formulario principal yo tengo el campo Provincia y municipio donde obtenga lo que deseo, pero en unos de los subformularios con los que trabajo necesito obtener País y Embajadas y hay es el problema. Le diré como lo realizo y así a usted le será más fácil brindarme la ayuda, yo tengo varias tablas Personal, estudio, profesión, viajes, contrato, etc. Las cuales están relacionadas a la hora de hacer los formularios yo tengo un formulario Principal que es el personal y al le incorporo subformularios de manera de obtener la información de una manera amena y organizada, al incorporar el subformulario Contrato hay es el problema, cuando selecciono el campo no logro que en el campo embajada aparezca el email de dicha embajada, como le explique anteriormente si yo trabajara con los dos formularios independientes no tuviera problemas porque lo obtengo correctamente, pero el problema radica en cuando yo en el formulario principal, le agrego el formulario contrato como un subformulario, no logro que al seleccionar el país, en el campo embajada me apaezca el email correspondiente, nuevamente le aclaro lo logro si trabajaran como formularios INDEPENDIENTES, el problema esta cuando lo coloco como SUBFORMULARIO, muchas gracias por su paciencia y ojala este en sus manos poder ayudarme. Zeny
Bien, creo entender el problema. En el SubFormulario Contrato, usted selecciona el país en un cuadro combinado y no le sale el email de esta embaja en el mismo SubFormulario.
Entonces la solución, es muy parecida a la anterior:
Private sub CuadroCombinado1_Change()
Dim Db as Database
Dim RsEmbajada as Recordset
Dim Mail as String
Dim Sql As String
Dim CampoIncio As String
Set Db = CurrentDb
CampoIncio = Me.CuadroCombinado1.Value
Sql = "SELECT TEmbajada.Pais, TEmbajada.mail," _
+ " FROM TEmbajada" _
+ " WHERE TEmbajada.Pais=""" + CampoInicio + """;"
Set RsEmbajada = Db.OpenRecordset(Sql)
If Not RsEmbajada.Eof Then
Mail = RsEmbajada.Fields("mail").Value
Me.MailEmbajada.Value = Mail
Else
End If
End Sub
Ten en cuenta que el nombre de la tabla TEmbajda y de los Campos (País y mail), deberían ser los que tienes tú en tus tablas donde guardas los datos de la embajada. Así como el Me. MailEmbajada. Value, MailEmbajada debería ser el nombre de tu campo en el formulario. Donde debes poner este código, es lo mismo que en el ejemplo anterior, en el cuadro combinado del subformulario donde introduces tú el nombre del país, si no fuese un cuadro combinado, entonces el CampoInicio=Me. CuadroCombinado1. Value, seria Me. País. Value o el nombre que tenga el campo.
Muchas gracias por su ayuda, paciencia y sobre todo por su rapidez, fue encantador poder contar con personas como usted, espero ahora poder concluir el trabajo en el que usted depósito un granito de arena. Saludos Zeny

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas