Dim strSql As String 'as already in example
Dim qdf As QueryDef 'as already in example
strSql = "SELECT * FROM tblT WHERE ID =" & Forms!Form1!txtID 'as already in example
On Error Resume Next
'Delete the query if it already exists
DoCmd.DeleteObject acQuery, "NewQuery"
Set qdf = CurrentDb.CreateQueryDef("NewQuery", strSql) 'as already in example
DoCmd.OpenQuery qdf.Name 'as already in example
'release memory
qdf.Close 'i changed qdef to qdf here and below
Set qdf = Nothing