Tengo una base de datos plana simple con unos 40 campos. Cada registro tiene una identificación única.
Hay algunos pares de registros que tienen una conexión tenue y yo colocaría un enlace/marcador en cada registro para poder saltar directamente al registro conectado.
Es estograbar para grabar¿Es posible vincular dentro de una estructura de base de datos plana simple?
Respuesta1
Hay algunos aspectos de esto y muchas soluciones posibles.
Parece que las principales preguntas/objetivos que tiene son:
- ¿Cómo debería verse el esquema (tablas) para permitir un vínculo entre dos registros en la misma tabla?
- ¿Cómo saltar de un registro en un formulario (vista única) al registro relacionado?
Hay varias formas de vincular los registros. El más simple es probablemente un campo en la tabla que contiene el ID de la misma tabla. La desventaja es que es posible que los datos sean inconsistentes: si el registro 1 se vincula al registro 2, ¿el registro 2 debe vincularse al registro 1 a cambio? Tal vez. Quizás no te importe.
Nota: Si necesita vincular más que solo pares de registros (es decir, grupos de más de dos), entonces el campo de autorreferencia simple no funcionará (a menos que los encadene, pero... ¡qué asco!). En este caso hay que tener otra tabla que tenga registros para cada elemento de cada grupo. Ignoraré esto ya que dijiste específicamente pares de registros.
Entonces agregue un campo a la tabla llamado algo así como RelatedItemID
. Debe ser un número del mismo tipo de datos que el ID de la tabla.
Lo siguiente que desea es una forma de crear los enlaces. Sugiero un cuadro combinado en el formulario que enumera todos los registros de esta tabla y tiene un ControlSource
conjunto para el RelatedItemID
campo.
Finalmente, saltar al registro relacionado es una simple cuestión de usar código VBA detrás de un botón.
Private Sub JumpToRelated_Click()
Me.RecordsetClone.FindFirst "ID = " & RelatedItemID
If Not Me.RecordsetClone.NoMatch Then
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
Esto navegará por el formulario hasta el registro relacionado.
Para garantizar la coherencia, es decir, hacer cumplir la relación bidireccional, es posible que desee algún código en el evento AfterUpdate del cuadro combinado para establecer el enlace del "otro" registro al registro actual y borrar el enlace anterior (si lo hay). Esto no es obligatorio; de lo contrario, simplemente significa que el usuario tendría que mantener manualmente la relación bidireccional.