一時的にクエリをVBAで作成する

Dim qdf As QueryDef    ←QueryDefの宣言

strsql = "Select xxxxxxx"

Set qdf = CurrentDb.CreateQueryDef("Q_XXXXXXX", strsql)   ←ここでQueryが作成される
  ~ ここにQueryを使用した処理を入れる ~
CurrentDb.QueryDefs.Delete "Q_XXXXXX"  ←Queryの削除

Set qdf = Nothing

※↑でQuery がうまく削除されずに残ったままになっている場合はエラーになるので、OnErrorの処理で以下を入れておく。

ERR_EXT:
  If Err.Number = 3012 Then
   CurrentDb.QueryDefs.Delete “Q_XXXXXX”
   Resume
  Else
   MsgBox Err.Description
  End If