Por cierto, la sentencia SQL que tienes es.. guapa eh

jejejeje en serio, si ves que te va mal mira de filtrarlo por yyyy/mm/dd (aunque con mm/dd/yyyy deberia de irte bien).
Por cierto, respecto el código que va después de la SQL... te corregiria lo siguiente:
If not (rs1.BOF And rs1.EOF) Then
'Es más fácil de leer con el not, no crees?
If isdate(Txtfechainicio) Or isdate(txtfechafin) Then
'Para que haces la comprobación si ya has hecho la SQL? lo lógico seria hacer este filtro al principio de todo ya que si abres el recordset sin fecha te va a pegar un pedo de aquí a HonoLulu (o como se escriba). y utilizaria el isdate en vez de ""
'Creo que aquí pretendres preguntar que si la fecha del rs1 es igual al txtfechainicio y al tctfechafin, no? pues te falta otro =
If rs1("fecha") = Txtfechainicio.Text And rs1("fecha") = txtfechafin.Text Then
Call CargarDataGrid(DataGrid1)
Else
MsgBox ("no hay datos para cargar"), vbInformation
End If
Else
MsgBox ("Debe seleccionar un dato"), vbCritical
com_grupo.Enabled = True
End If
Else
MsgBox ("La tabla no tiene registros"), vbCritical
End If
End Sub