Por supuesto que se puede, pero necesitas programar un poco, haz lo siguiente: Crea una tabla nueva que se llame por ejemplo "Numerador" y dentro de esta tabla crea un campo de tipo numérico doble que se llame "Conteo", guardas y cierras; luego ingresa al diseño del informe, abre la ventana de propiedades del informe y selecciona la ficha "Eventos"; en eventos hay uno llamado "Al abrir" da clic en los "..." que aparecen al final del renglón, lo cual te llevará a Visual Basic donde aparecerá: Private Sub Report_Open(Cancel As Integer) End Sub En medio de esas dos líneas copia lo siguiente: Dim Contador Dim BD As Database Dim SQL As String Dim RsNumerador As Recordset Set BD = CurrentDb SQL = "SELECT * FROM NUMERADOR" Set RsNumerador = BD.OpenRecordset(SQL, dbOpenDynaset) If RsNumerador.RecordCount > 0 Then Contador = RsNumerador![conteo] + 1 With RsNumerador .Edit ![conteo] = Contador .Update End With Else With RsNumerador .AddNew ![conteo] = 1 .Update End With Contador = 1 End If Antes de continuar en la misma ventana de Visual ingresa al menú "Herramientas" "Referencias" y asegúrate de tener seleccionada una que diga algo así: Microsoft DAO 3.6 Object Library La versión no importa puede ser 2.5 o cualquier otra. Luego guardas y regresas al informe y en la sección donde quieres que aparezca la numeración creas un cuadro de texto y dentro del cuadro de texto copias lo siguiente: =DBúsq("[Conteo]";"Numerador") Siempre suponiendo que utilizaste los mismos nombres de campo y de tabla que coloqué arriba. Lo que hace todo lo anterior es lo siguiente: cada vez que abres el informe va a la tabla numerador y aumenta uno al valor que encuentre en el campo conteo, luego en el cuadro de texto donde aparece el conteo toma ese valor y lo muestra en el informe, sencillo no! El contador no aumenta cuando mandas imprimir, sino cuando abres el informe, es decir que si quieres que vuelva a aumentar debes cerrarlo y volverlo a abrir. Bueno espero que te funcione, de lo contrario puedes volver a escribir. Gajimenb