En SQL Server podrias usar el siguiente Select para obtener los campos
Código SQL
[-]select c.COLUMN_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE c
where pk.TABLE_NAME = Nombre_Tabla
and CONSTRAINT_TYPE = 'PRIMARY KEY'
and c.TABLE_NAME = pk.TABLE_NAME
and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME
Lo pones en un TQuery (o TADOQuery) y reemplazas Nombre_Tabla por parametros y te devolvera la lista de los campos clave.
Lastimosamente no uso Access asi que no puedo ayudarte con eso.
Saludos.