Si se maneja un mínimo de VBA hay bastantes alternativas, en tu caso la mas sencilla (dado el método que aplicas) es utilizar OpenArgs en la llamada y hacer la asignación en el evento Open del informe.
En el evento OPEN aun no se genero el informe y se puede 'manipular' alguna que otra cosa (o muchas si tienes experiencia y ... ganas).
Sobre el error que recibes:
NO SE PUEDE modificar el origen de datos para el informe con el informe ya ejecutado.
(Error mío, creí que quedo claro en mi primera respuesta).
Si en el combo están los nombres de las tablas, el combo tiene una sola columna (o la columna con las tablas es la predeterminada), se le envía en la llamada el dato imprescindible (el nombre de la tabla)
Antes:
DoCmd. OpenReport "INFORME_COSTES", acViewNormal
Después:
DoCmd. OpenReport "INFORME_COSTES", acViewNormal,,,, Me. COMBO_COSTES
Añadir esto en el evento Open del informe:
Private Sub Report_Open(Cancel As Integer)
If Nz(Me.OpenArgs, "") = "" Then Cancel = True: Exit Sub
Me.RecordSource = Me.OpenArgs
End Sub
La primera línea verifica que hay algo que asignar (si se abre el informe directamente OpenArgs = Null y no se abre).
Con la segunda se le asigna como origen de datos lo que 'se supone' que es el nombre de la tabla o consulta seleccionada en el combo.
Que quede meridianamente claro que antes de seleccionar otro origen de datos en el combo, hay que cerrar el informe si esta abierto.
Aconsejo condicionarlo antes de efectuar la apertura, esto es, verificar si esta abierto el informe y de estarlo: cerrarlo para poder volver a abrirlo, símil de 'antes de entrar, dejen salir'.