A prescindere dalla Sintassi SQL, il VBEditor ha un limite di lunghezza della stringa, non ricordo esattemente il numero di righe/caratteri consecutivi senza interruzione riga(ed il carattere [_] non interrompe nulla, serve il vbCrLf o vbNewLine...
Per questo di solito non si scrive una cosa di quel tipo ma si opera in modo diverso...
Dim strSQL As String
strSQL="INSERT INTO PresenzeElaborate "
strSQL=strSQL & "SELECT Listino.Id, Listino.Anno, Listino.Mese, Listino.Perizia, Listino.[numero listino], "
strSQL=strSQL & "Listino.[zona CAU], Listino.Matricola, Listino.[ore lavorate], Listino.[ore non lavorate], "
strSQL=strSQL & "Listino.[ore retribuite], Listino.[giorni lavorati], Listino.[giorni contributivi], "
strSQL=strSQL & "Listino.[KM ricorrenti], Listino.[KM inseriti a mano],Listino.Comune , Listino.Cantiere, "
strSQL=strSQL & "Listino.direttore, Listino.[perito forestale], Listino.[Cambio Qualifica], Listino.[ore straordinario], "
strSQL=strSQL & "Listino.[ore straordinario festivo], Listino.[ore lavorative festive], "
strSQL=strSQL & "QueryCedolinoGiorni.[ore Lavorate Progr], QueryCedolinoGiorni.[Ore Retribuite Prog], "
strSQL=strSQL & "QueryCedolinoGiorni.[giorni lavorati Progr], QueryCedolinoGiorni.[giorni contributivi Progr] "
strSQL=strSQL & "FROM QueryCedolinoGiorni INNER JOIN Listino ON QueryCedolinoGiorni.Id = Listino.Id"
CurrentDb.Execute strSQL,dbFailOnError
Attenzione anche all'uso di [CurrentDb]...