Gracias a todos por vuestra ayuda. Siento no haber usado el TAG de Delphi.
Leyendo con atención todo lo que habéis compartido aún sigue habiendo problemas. El código que he usado es:
Código Delphi
[-]Table1.Insert;
Table1.Campo2 := Valor2; ........
Table1.Post;
marca := Table1.GetBookmark;
Table1.Refresh;
table1.GotoBookMark(marca);
.....
Ahora el valor del campo Autoincrement no es 0, sino que corresponde al valor del último registro físico de la tabla, y no con el que acabo de insertar (el cual ha ido a otro lugar de la tabla).
Lo he resuelto con un Locate:
Código Delphi
[-]Table1.Post;
intCam := table1Camp.Value;
Table1.Refresh;
Table1.Locate('Camp',intCam,[]);
Ahora sí que voy al registro y el valor Autoincrement sí que es el correcto.
Pero sigo pensando que algo no va bien. Debería funcionar con el primer código.
Espero haberme explicado bien. Cualquier observación será de ayuda.