Fijate en este código:
procedure TForm1.Button1Click(Sender: TObject);
begin
// open the Access application
try
Access := GetActiveOleObject('Access.Application');
except
Access := CreateOleObject('Access.Application');
end;
Access.Visible := True;
// open the database
//The second parameter specifies whether you want to open the
//database in Exclusive mode
Access.OpenCurrentDatabase(edit1.text, True);
// open the report
{The value for the second parameter should be one of
acViewDesign, acViewNormal, or acViewPreview. acViewNormal, which is the default, prints the report immediately. If you are not using the type library, you can define these values like this:
const
acViewNormal = $00000000;
acViewDesign = $00000001;
acViewPreview = $00000002;
The third parameter is for the name of a query in the current
database. The fourth parameter is for a SQL WHERE clause - the string must be valid SQL, minus the WHERE.}
Access.DoCmd.OpenReport('Consulta2', acViewPreview,
EmptyParam, EmptyParam);
//<...>
// close the database
end;
Siendo Edit1.text la ruta completa del archivo de base de datos y Consulta2 el nombre del reporte.
En el uses tenes que declarar algunas unidades, no me acuerdo cuales, pero probá con OleServer, Access97, oleauto.
Espero que te sirva