Un consejo, cuando pongas código, encierralo entre CODE y /CODE (estre corchetes que no los pongo porque sino no se vería nada).
Una forma buena de ver el SQL que se está lanzando y, así saber si es una sentencia SQL válida es grabar el contenido del TStrings de la consulta
Código:
FrmDModule.TbAlumnos.SelectSQL.SaveToFile('c:\lolo.txt');
Siempre antes del Open porque si da error no se grabaría el fichero.
Con respecto a tu problema, es difícil saberlo ya que, me imagino que RCampo es una variable global a toda la Unit y no se puede ver a simple vista los valores que puede coger (si sólo es lo que has escrito, parece estar bien a parte de lo que te comenta Viet).
Otra cosa que puedo sugerirte es que te descagues de mi web el componente TDBSearchDialog. Hace precisamente lo que estás haciendo tu y, quizás pueda darte ideas (o utilizarlo si te gusta

)