No debes preocuparte en tratar de crear indices dentro de tu aplicacion, si bien es cierto se puede hacer no es necesario; ya que access o sql o la base de datos que estes utilizando tiene esta utilidad, solo tienes que crear el indice y en tu programa deberas utilizar consultas Sql, supongo que habras visto la siguiente intruccion:
Adodc1.Recordsource="Select * from [Tabla] where Cliente='1234'"
Adodc1.Refresh
Bien esta pequeña instruccion te puede localizar el cliente 1234 en una tabla que puede tener hasta un millos de registro en un santiamen y lo hace porque previa mente tu creastes un indice por el administrador de base de datos que estas utilizando y en la Clausula Where utilizas en campo por el cual armastes dicho indice. Si no tienes practicas con consultas, que es la mejor forma de buscar registros en una tabla, vete a la ayuda de visual basic en la seccion de "Consultas Sql"
Espero haber aclarado en algo tu duda.