Partiendo de que el sistema que tienes montado no me parece el más adecuado y operativo (véase el motivo de tu consulta), y teniendo en cuenta que con lo que explicas se pueden entender muchas cosas, te he preparado este ejemplo que creo te puede ayudar si acerté con lo que tienes.
Te comento por encima cómo hice:
.- Hay 3 BDs idénticas (Marciala, Sisebuta y Teopisto), que recogerían los datos de trabajo de esos tres comerciales. Con esto intento recrear lo que dices de "Tengo varias BD que contienen los mismos campos, cada BD en para una persona"
.- Cada BD tiene un campo "Comercial", configurado como cuadro combinado con una lista (hecha "a mano") de los tres comerciales, y cada BD tiene como valor predeterminado el comercial correspondiente (para que se rellene automáticamnte en cada registro nuevo). Con esto cubro lo de "En cada BD tengo un campo llamado "Asignado" que se abre un listado de las personas"
.- Cada BD tiene un formulario sobre esa tabla. En el evento "Después de actualizar" del cuadro combinado "Comercial", le genero un código que:
1º/ guarda el registro
2º/ inserta el registro en la tabla del comercial correspondiente (inicialmente el comercial será el usuario de la BD)
3º/ elimina el registro del comercial "que no corresponde"
Con este código soluciono lo de "cuando abro la BD de una persona y modifique la asignación el registro desaparezca y vaya a parar a la BD de la persona que he hecho la asignación"
En el código he supuesto que todas las BDs están en la misma carpeta, si no fuera así, tendrás que modificar la variable rutaBD para indicarlas.
.- La BD "Jefe" sería la BD general. Tiene 3 tablas vinculadas a cada una de las BDs de los comerciales (cada una con el nombre del comercial correspondiente), y una cuarta tabla (llamada Todos)idéntica en estructura, que tendrá en todo momento los datos de las otras 3 (ya veremos cómo)
.- En la BD Jefe hay un formulario que al abrirse hace dos operaciones: borra la tabla "Todos" y le copia los datos de cada una de las vinculadas, así siempre tienes los datos actualizados al abrirlo.
.- En el cuadro combinado Comercial, hay otro código, también en el evento "Después de actualizar" que hace la operación inversa tras guardar los cambios: elimina los datos de las tablas vinculadas y les pasa los de la tabla "Todos" correspondientes.
Con esto creo que se soluciona lo de " necesito que todos los datos de cada BD vaya a parar a una general y que desde esta general se pueda asignar registros a cada persona"
Ahora bien, yo lo que hubiera hecho para montar un sistema más "sencillo" sería:
a) Una única BD con una tabla con los datos (y el campo asignado, tal como lo tienes ahora). Esta incluso podría ser la BD general desde la que realizar asignaciones.
b) Una BD por persona, vinculada a esa tabla del punto a. Por medio de una consulta o directamente en el formulario de trabajo, filtraría los registros para que solo se mostraran los del "asignado" que usará esa tabla. Con esto ya no tienes que hacer nada al asignar un registro a otra persona, pues le "desaparecerá" de los que ve y le "aparecerá" al otro. Obviamente has de eliminar el acceso a las tablas (que ya no debieran tener los usuarios...)
c) Si la BD del punto a no la quieres usar como BD general, creas una nueva BD, la vinculas con a, y creas el formulario de asignaciones.
Simple y efectivo, jejeje.
Un saludo.