Inicio > Microsoft Access > dytcdo > Formularios y relacion 1:1

Formularios y relacion 1:1

Experto:
Usuario:
Fecha: 11/08/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Access
08/08/2008
karlosxd, usuario preguntando en Microsoft Access
Usuario
Hola experto, mi problema es el siguiente: tengo unas relaciones 1:1 y quisiera llenarlas simultaneamente desde un formulario con subformulario, el asunto es que al llenar todos los campos en el subformulario, este entrega la opcion de agregar un nuevo registro (incluso ese registro no se puede agregar por significar un duplicado), el asunto es que que quiero borrar esa posibilidad (de agregar un nuevo registo) y quiero que el subformulario solo sirva para agregar 1 registro (ya que es 1:1), bueno tambien tengo otra inquietud ¿Puedo limitar tambien a que el subformulario de la posibilidad de agregar 2 registros? (solo 2 o 1 o 2?).
Espero tu sabia respuesta experto
Saludos
09/08/2008
karlosxd, experto respondiendo en Microsoft Access
Experto
Si tienes la relación entre las trablas 1:1 Access sólo dejará lógicamente añadir datos que cumplan esta relación, el subformulario no debería dejar añadir más datos con ese valor en el índice.
Si quieres que el subformulario se mueva en un sólo registro, y no en toda la tabla (esto te puede solucionar tu problema), ponle el ciclo al registro activo (propiedades, pestaña de otras, ciclo), el subformulario se moverá en el registro activo.
Si lo que quieres hacer es bloquear la entrada de datos del subformulario, pon la propiedad permitir agregar a no.


Lo de la relación 1:2, visto de una manera lógica, es lo mismo que 1:n, se me ocurren varias opciones que pudieras adaptar a tu caso.
La primera es añadir un campo booleano al índice, como sólo toma los valores 1 o 0, te permitirá tener sólo dos registros (necesariamente uno a 1 y otro a 0).
Otra opción un póco más compleja, pero asequible, es que hagas una consulta que cuente los veces que aparece esa relación 1:n en la segunda tabla, y por código manipules la propiedad de permitir agregar a si o no según el valor de esta consulta (esta es la opción que mas me gusta, requiere cierto nivel de programación VBA). SELECT ... COUNT ..., If Count > 2 then allowadd = false
Otra opción, sólo para el caso de relación 1:2, es que lo pases a dos tablas 1:1, 1:1, y luego lo unas con una consulta UNION, esto puede ser util si la segunda tabla tiene datos de caracter accesorio, secundario o complementario de la primera
Espero que te sea de ayuda
11/08/2008
karlosxd, usuario preguntando en Microsoft Access
Usuario
Muhas gracias por la ayuda
Enlaces patrocinados