Sí, como bien dijiste, puedes recorrer todos los controles dentro de la ventana con un For Each. Por ejemplo:
Código vb:
Ver originalDim Objeto As Object
For Each Object In Me.Controls
If TypeOf Object Is TextBox Then
'Es un TextBox
End If
Next Object
Esa sería una forma, aunque si no tienes muchos campos puedes ir comparándolos uno a uno e ir añadiendo a la consulta según esté vacío o no.