Pongo la consulta pero primero pongo el error:
la expresión que ha especificado como parámetro de la consulta produjo el error 'Microsoft Access no encuentra el nombre -campo que no existe- que ha especificado en la expresión.
El tema es que dejo la consulta lista para cuando ese campo exista, pero si no existe no quiero que esté dando el follón.
INSERT INTO data_PREP ( dorsal, nombre, apellidos, f_nacimiento, sexo, club, tiempo, ritmo, flag1, flag2, flag3, flag4, categoria, dni, posicion, sex_place, grp_place, flag1sexo, flag2sexo, flag3sexo, flag4sexo )
SELECT data.dorsal, data.nombre, data.apellidos, data.f_nacimiento, data.sexo, data.club, data.tiempo, data.ritmo, data.flag1, data.flag2 AS Expr1, data.flag3 AS Expr2, data.flag4 AS Expr3, data.categoria, data.dni AS Expr4, data.posicion, DCount("sexo","data","sexo='" & [sexo] & "' AND posicion<=" & [posicion]) AS sex_place, DCount("categoria","data","categoria='" & [categoria] & "' AND sexo='" & [sexo] & "' AND pos_catg<>0 AND posicion<=" & [posicion]) AS grp_place, DCount("flag1","data","flag1='" & [flag1] & "' AND flag1='" & "yes" & "' AND sexo='" & [sexo] & "' AND posicion<=" & [posicion]) AS flag1sexo, DCount("flag2","data","flag1='" & [flag2] & "' AND flag2='" & "yes" & "' AND sexo='" & [sexo] & "' AND posicion<=" & [posicion]) AS flag2sexo, DCount("flag3","data","flag1='" & [flag3] & "' AND flag3='" & "yes" & "' AND sexo='" & [sexo] & "' AND posicion<=" & [posicion]) AS flag3sexo, DCount("flag4","data","flag1='" & [flag4] & "' AND flag4='" & "yes" & "' AND sexo='" & [sexo] & "' AND posicion<=" & [posicion]) AS flag4sexo
FROM data;