Autocompletar campos de un formulario access

Te comento la situación que tengo.
He realizado un formulario de carga de datos.
Entre las tablas que este formulario requiere hay dos que son las que me interesan en este caso: "Partidos" y "Regiones"
La tabla Partidos contiene: ID, NOMBRE y IDREGION (id de la tabla Región)
La tabla Regiones contiene: ID y NOMBRE
Varios partidos conforman una región y eso está expresado en el campo IDREGION.
Ahora bien, a mi me interesa que cuando se seleccione un partido en el formulario, automáticamente se complete el cuadro que corresponde a la región.
Yo he podido lograr que apareciera el nombre de la región correspondiente al partido seleccionado, el tema es que hay casos en que el partido es (Indeterminado) en el que quiero que me deje seleccionar una región cualquiera. El campo IDREGION que se corresponde con el id del partido (Indeterminado) está lógicamente vacío.
Lo que hice, mediante VBA, fue esto, probar con un if, pero no funcionó
Private Sub Partido_AfterUpdate()
If [Partido] = "Indeterminado" Then
Me.RS.RowSource = "SELECT regiones.Id, regiones.region FROM regiones ORDER BY [region]"
Else
Me.RS.RowSource = "SELECT regiones.Id, partidos.id, regiones.region FROM regiones INNER JOIN partidos ON regiones.id=partidos.idregion where (((partidos.Id) =Formularios![notas nuevas]![Partido]))"
Me.RS.Requery
Me.RS.SetFocus
Me.RS.Dropdown
End If
End Sub
``
Probé con el origen de la fila vacío y también con las opciones que van en el IF:
 "SELECT regiones.Id, regiones.region FROM regiones ORDER BY [region]" o con "SELECT regiones.Id, partidos.id, regiones.region FROM regiones INNER JOIN partidos ON regiones.id=partidos.idregion where (((partidos.Id) =Formularios![notas nuevas]![Partido]))"
Se te ocurre porque puede ser o como puedo solucionarlo.

1 Respuesta

Respuesta
1
Por lo que tu planteas y si tienes bien planteadas las relaciones entre las tablas, nunca te debería dejar elegir un partido que no corresponda a la región "Indeterminado" ya que de hacerlo, romperías las relaciones de integridad que toda base de datos bien diseñada necesita mantener.
Hola, se ve que no me he podido expresar bien. Indeterminado hace referencia a un partido, no a una región.
Para explicarlo mejor, tengo partido1, partido2, partido3, partido4 y partidoINDETERMINADO. Ahora bien, partido1 y partido2 conforman la REGION A. Partido3 y partido4 la REGION B. Por lo tanto si en el formulario seleccionara el partido3, en el cuadro combinado de la región saldría REGION B.
El partidoINDETERMINADO no forma parte de ninguna región. lo que yo quisiera es, siguiendo el ejemplo que te doy, es que al seleccionar en el cuadro del formulario la opcion "partidoINDETERMINADO", me de la opción de elegir entre la REGION A o la REGION B en el cuadro combinado de región.
Espero haber sido claro y que puedas ayudarme.
Gracias.
Saludos.
En efecto es lo que había entendido. Lo que planteas tu ES IMPOSIBLE porque lo que no se puede hacer es que cuando te interese puedas por el INDETERMINADO en la REGIÓN A o B ya que romperías la integridad de las claves principales.
Si quieres como un "apaño" puedes hacer lo siguiente. En vez de utilizar la palabra indeterminado utiliza INDETERMINADOA para la Región A e INDETERMINADOB para la región B; de esta manera si podrás utilizarlo como tu lo planteas, de lo contrario no estaría bien diseñada la Base de Datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas