Hay varias maneras de hacerlo. Te cuento una que he usado yo en algunas ocasiones.
En mi caso tengo una lista de personas (unas 10.000) con datos entre los que está el campo Apellidos. Tengo un formulario denominado "frmBuscarPersona_Listado" en el que su mayor parte está ocupada con un subformulario de tipo continuo llamado "frmBuscarPersona_ListadoSub", es decir, que muestra en cada línea el registro de una persona (con su barra de desplazamiento vertical...). Este subformulario está basado en una consulta sobre la tabla que contiene los datos de las personas (tblPerosnas), a la que se le añade como criterio en el campo Apellidos una sentencia como la siguiente:
WHERE (((tblPersonas.Apellidos) Like [Formularios]![frmBuscarPersona_Listado]![FiltroDeBotones]))
Con esto le indico a la consulta que solo me enseñe los apellidos que sean como el valor que esté en el campo "FiltroDeBotones" del formulario "frmBuscarPersona_Listado". En este formulario tengo un grupo de opciones llamado "BotonesFiltroAlfabetico" en el que he incluido un botón para cada letra del abecedario, y uno con el texto "Todos". Este botón es el predeterminado del grupo. Cada botón tiene en su propiedad titulo la letra que le toca (para mostrarla como texto del botón) y un valor (A > 1, B > 2 ...). Coloca los botones para que queden aparentes (en mi caso en dos líneas, con un mayor tamaño del botón "Todos", formato de letra...). En el código que te adjunto verás que al seleccionar un botón (una letra visualmente) en el grupo de opciones "BotonesFiltroAlfabetico" actualizo el valor del campo "FiltroDeBotones" del formulario. Como este campo está en la consulta base del subformulario que muestra las personas, al ejecutarse finalmente el código asociado a BotonesFiltroAlfabetico_AfterUpdate se recalcula el origen de datos a mostrar. Osea, si presiono la letra A en el grupo de opciones "BotonesFiltroAlfabetico", en el campo (oculto para que quede bien visualmente) "FiltroDeBotones" establezco el valor A*. Una vez ejecutadotodo el código al recalcularse el origen de datos del subformulario, éste solo presentará los registros cuyos apellidos empiecen con la letra A. Puedes añadir un contador de registros para que te diga cuantos hay que empiecen por A o cualquier letra que selecciones...
Ya solo te queda añadir código a los eventos antes de actualizar y después de actualizar del grupo de opciones "BotonesFiltroAlfabetico" (usar el generador en la ventana de propiedades...). Modifícalo en función de los nombre que les des a tu formulario, campos... y con esos cambios debe de funcionarte.
Te copio el código de ambos eventos.
Private Sub BotonesFiltroAlfabetico_BeforeUpdate(Cancel As Integer)
On Error GoTo BotonesFiltroAlfabetico_BeforeUpdate_Err
Select Case Me.BotonesFiltroAlfabetico
Case 1
Me.FiltroDeBotones = "A*"
Case 2
Me.FiltroDeBotones = "B*"
Case 3
Me.FiltroDeBotones = "C*"
Case 4
Me.FiltroDeBotones = "CH*"
Case 5
Me.FiltroDeBotones = "D*"
Case 6
Me.FiltroDeBotones = "E*"
Case 7
Me.FiltroDeBotones = "F*"
Case 8
Me.FiltroDeBotones = "G*"
Case 9
Me.FiltroDeBotones = "H*"
Case 10
Me.FiltroDeBotones = "I*"
Case 11
Me.FiltroDeBotones = "J*"
Case 12
Me.FiltroDeBotones = "K*"
Case 13
Me.FiltroDeBotones = "[LL]*"
Case 14
Me.FiltroDeBotones = "M*"
Case 15
Me.FiltroDeBotones = "[NÑ]*"
Case 16
Me.FiltroDeBotones = "O*"
Case 17
Me.FiltroDeBotones = "P*"
Case 18
Me.FiltroDeBotones = "Q*"
Case 19
Me.FiltroDeBotones = "R*"
Case 20
Me.FiltroDeBotones = "S*"
Case 21
Me.FiltroDeBotones = "T*"
Case 22
Me.FiltroDeBotones = "U*"
Case 23
Me.FiltroDeBotones = "V*"
Case 24
Me.FiltroDeBotones = "W*"
Case 25
Me.FiltroDeBotones = "X*"
Case 26
Me.FiltroDeBotones = "Y*"
Case 27
Me.FiltroDeBotones = "Z*"
Case 28
Me.FiltroDeBotones = "*"
End Select
BotonesFiltroAlfabetico_BeforeUpdate_Exit:
Exit Sub
BotonesFiltroAlfabetico_BeforeUpdate_Err:
MsgBox Err.Description
Resume BotonesFiltroAlfabetico_BeforeUpdate_Exit
End Sub
Private Sub BotonesFiltroAlfabetico_AfterUpdate()
On Error GoTo Err_BotonesFiltroAlfabetico_AfterUpdate
Me.frmBuscarPersona_ListadoSub.Requery
Exit_BotonesFiltroAlfabetico_AfterUpdate:
Exit Sub
Err_BotonesFiltroAlfabetico_AfterUpdate:
MsgBox Err.Description
Resume Exit_BotonesFiltroAlfabetico_AfterUpdate
End Sub
En lugar de hacerlo sobre el campo Apellidos, puedes hacerlo sobre los campos que comentas (titulo, autor o cualquier otro que desees). Basta con que bases el subformulario en una consulta en la que en la columna que corresponda tenga un filtro similar al que uso en mi caso sobre el campo Apellidos.
Cordiales saludos.