How to simplify this query?
For every row where Place1 is null, you are returning an empty string as item_sku. So without DISTINCT all such entries would be returned as

item_sku  Place1
--------  ------
          NULL
          NULL
          NULL
          NULL
          NULL
…         …


and DISTINCT condenses them to just one row. Do you need that row in the output? To me, it does not make much sense to keep it. I would get rid of it with a simple filter:

SELECT DISTINCT
  "k1 " &amp; ProductID1 &amp; " " &amp; ProductID2 &amp; " " &amp; ProductID3 AS item_sku,
  Place1
FROM
  Tam_Liste
WHERE
  Place1 IS NOT NULL
;


Furthermore, I would also consider moving the concatenation bit to the front end and use the database only as a data source*. My final query, therefore, would look like this:

SELECT DISTINCT
  ProductID1,
  ProductID2,
  ProductID3,
  Place1
FROM
  Tam_Liste
WHERE
  Place1 IS NOT NULL
;


I am not 100% sure but it seems likely to me that the above query would require less temporary disk space than the original one.



*I realise that things may work differently with Access, as it can be used both as a back end and as a front end. Nevertheless, I would still keep this option in mind.