Por lo que ví hay dos problemas, uno en la sentencia sql y otro en la conexión a la base de datos.
En la consulta: Si el campo seleccionado es de tipo texto la variable tiene que estar entre comillas simples. Y utiliza la propiedad Text de los combos, ya que ListIndex dá la posición y no el valor.
Código:
Else
sql = sql & Combo1.Text & Combo2.Text & "'" & Text1.Text & "'"
aunque la consulta está inacabada, tendrás que comprobar si se seleccionó algún item del combo "Criterio" y seguir enlazando la consulta con un sql = sql & " AND...
y en cuanto a la conexión:
Código:
Data1.Connect = db.Connect
Data1.RecordSource = sql
Data1.Refresh