Hola Petolansa,
El problema que te esta pasando no es más ni menos que los paréntesis, MSACCESS es raro ya por naturaleza y a la hora de trabajar con más de un INNER JOIN, necesita paréntesis, ¿el porque?, no lo se, pero así es como trabaja este motor de base de datos.
Cuando pones más de un INNER JOIN tienes que utilizar tantos paréntesis cómo INNER JOIN pongas, el primer paréntesis se coloca después del FROM y cerrando cómo INNER JOIN tengas excepto el último, es aquí tu caso.
Código SQL
[-]SELECT
P.PNROLEGAJO
,P.PAPELLIDO
,P.PNOMBRE
,P.PFINGRESO
,P.PTELFIJO
,P.PTELCELULAR
,P.PGUARDIA
,P.PESTADO
,P.PFECHANAC
,P.POBSERVA
,H.TURNO
,H.DESCTURNO
,L.LNOMBRELUGAR
,L.DESCLUGAR
,A.TIPOACTIVIDAD
,A.ADESCACTIVIDAD
FROM ((PERSONAL AS P
INNER JOIN HORARIO AS H
ON P.PCODHORARIO = H.HCODHORARIO)
INNER JOIN LUGAR AS L
ON P.PCODLUGAR = L.PCODLUGAR)
INNER JOIN ACTIVIDAD AS A
ON P.PCODACTIVIDAD = A.ACODACTIVIDAD
WHERE P.PDNI=:NRODNI
¿Cuantos paréntesis hay?, pues 2, ¿Cuantos INNER JOIN hay?, pues 3.
Los paréntesis se colocan cuando hay más de un INNER JOIN y cerrando los paréntesis en cada INNER JOIN excepto el último.
Espero que se me haya entendido para los futuros INNER JOIN
Cómo dice
Casimiro Notevi, es mucho mejor utilizar ALIAS en tus base de datos para evitar errores que te puedan llevar a muchos dolores de cabeza.
Un saludo