Te explico un poco la línea solicitada en la cual usamos algunas variables. Antes te adelanto que en el código que te pasé no es necesario la variable userName, si te fijas no la usamos... como yo la tomé de un código mío, se me olvidó quitarla, puedes eliminarla.
DoCmd.OutputTo acOutputReport, "ConsultaEstadoCliente", acFormatPDF, strPath & NomEstadoCliente, True
DoCmd. Es un generador de comandos, te manda a hacer algo...
OutputTo acOutputReport: Orientas alsistema que lo que vas a emitir (output) es un tipo de arcivo Report de Access (acOutputReport). Existen varios tipos de acOutPut, por ejemplo acOutputTable, acOutputRequery, etc. En esta ocasión es un Report.
"ConsultaEstadoCliente",: Este texto se llama en el sistema el ObjectName, es decir, el nombre objeto generado que deseas mandar a OutPut. En mi caso es un reporte que sale de una consulta Estado Cliente, en tu caso es "InfoFacturas"
AcFormatPDF: Es el tipo de formato de salida de lo que estás enviando a salir. En este caso queremos un PDF. En sistema es el OutPutFormat
StrPath & NomEstadoCliente: Este es el paso o camino donde deseo que guarde el archivo generado en PDF, y de paso le ponemos nombre. Se llama el OutFile.
True: es la orden de que se autogenere el archivo PDF cuando lo emita... inmediatamente. Si le pones False solo se guarda y no se abre el archivo.
Ahora te explico un poco el error que te da.
Prueba con darle una dirección más concreta al strPath, yo he probado acá y no me da error pero no me ejecuta nada si le pongo solo strPath = "C:\", pero con strPath = "C:\Mis registros\", si lo hace bien.