Hacer un campo autoincremental que no sea clave primaria

ejemplito.odb

Hola a todos.

Sabéis que soy bastante novato en LibreOffice. Tengo un problema con una base de datos que me han pedido. En realidad estoy haciendo pruebas con una base de datos minúscula.

Quieren que haya un campo autoencremental pero que no sea el de la clave primaria. En la base de datos real, tengo una tabla con ID_Expediente y tiene Valor Automático a Sí. Pero luego quieren que haya otro campo Expediente que también sea autoincremental.

Quiero que al crear o modificar un registro a través de un formulario automáticamente se me copie el dato de ID_Expediente en Expediente (a secas). Es un poco raro, pero eso me han pedido.

He conseguido algo con esta base de datos de prueba, que he hecho el típico Profesor-Alumno, pero luego en el último paso no me graba el registro modificado.

Tengo una base de datos con una tabla tabProfesor que tiene un formulario asociado forProfesor. Tengo el dato ID_Profesor y luego Cod_Profesor. Como sólo es de prueba, querría que al crear un nuevo registro me copiase en el formulario el valor de ID_Profesor en Cod_Profesor.

Normalmente, no se asigna el valor de ID_Profesor hasta que se han grabado los datos del formulario. Yo he conseguido (así un poco chapucera, pero ya digo que soy muy novato en LO) que se me copie el siguiente valor por medio de una consulta almacenada, pero aún así cuando le doy a grabar, parece que se graba, pero en realidad no.

Las macros están organizadas en dos módulos, el primero para recuperar y copiar datos entre controles de un formulario y el segundo es el que saca el valor Máximo + 1 para copiarlo en el nuevo formulario.

También quieren que una vez grabado un registro, se puedan recuperar directamente (sin escribir nada) los datos asociados cuando se introduzca el número de expediente, pero eso de momento, lo dejamos.

Os dejo la base de datos. Podéis tocar los datos que queráis. No me he preocupado mucho de ellos.

Saludos.