Necesitas crear una vista. Si utilizas MySQL como gestor ya te la pelaste porque no admite vistas. De lo contrario, puedes hacerla con codigo con la instrucción CREATE VIEW, o bien, con los asistentes propios del servidor de BD que manejes.
Pero ahi te va un tip: como es algo de desmadre coordinar una consulta parametrizada, mejor utiliza instrucciones SQL creadas con los parametros que envíe el usuario, ejemplo:
Queremos una consulta que regrese los registros que contengan la cadena contenida en Text1.Text, es decir, que no necesariamente coincida caracter por caracter
Private Sub BlaBlaBla
Dim rs as New ADODB.Recordset
(AQUI IMPLEMENTA UNA FUNCION QUE ELIMINE EL CARACTER ' <LA COMILLA> DEL TEXTBOX, SI NO, TU PROGRAMA TRUENA)
rs.open "SELECT nombre FROM tblUsuarios LIKE %' & Text1 & '%'
End Sub
Ahora, solo llama el metodo refresh del datagrid o cualquier control asociado a ese recordset, o bien, extrae los datos con rs.fields("NOMBREDELCAMPO").Value y sus rs.MOVENEXT para cada registro.
Si usas access, utiliza el caracter %, si no, utiliza el # como comodin
Saludos
Fernando Rios