Qué tal?
Todo apunta a que el recordset es el que te está devolviendo las filas por quintuplicado, probablemente tengas que hacer alguna agrupación o comprobar los enlaces entre tablas, ya que el código que has mandado parece correcto.
Por otra parte, cuando agregues líneas a un MSFlexGrid, hazlo en una sola llamada para ahorrar código y acelerar la presentación:
Código:
Call MSFlexGrid1.AddItem(Rs.Fields(5) & vbTab & _
Rs.Fields(0) & vbTab & _
Rs.Fields(3) & vbTab & _
Rs.Fields(1) & vbTab & _
datatemp)
Por supuesto, pon el Select Case antes del AddItem
También puedes establecer MsFlexGrid1.Redraw = False antes de entrar en el bucle y volverlo a poner a True al salir; esto hará que no se redibuje el control con cada cambio, con lo que mejorará la respuesta de cara al usuario y reducirá el parpadeo mientras se llena.