Zitat von
taveuni:
O.k.
Dann mal weiter. Irgendwo in einem anderen Forum hast Du geschrieben das Du einen Fehler bekommst.
Wenn ich Deine Aussage richtig verstanden habe:
Delphi-Quellcode:
try
Access := GetActiveOleObject('
Access.Application');
// kommt hier der Fehler?
except
Access := CreateOleObject('
Access.Application');
end;
Falls ja step einfach weiter und das Objekt wird erstellt.
Oder wo genau liegt Dein Problem?
Den Fehler habe ich nicht wegbekommen - ich stell mich mit Delphi wirklich ungeschickt an.
Ich habe jetzt eine andere Variante gefunden und habe jetzt dieses:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
begin
Access1.OpenCurrentDatabase('C:\wt2_Rep.mdb', false);
Access1.Visible:=true;
Access1.DoCmd.OpenReport('rep_Empl_Year', acViewNormal, EmptyParam, EmptyParam);
Access1.CloseCurrentDatabase;
Access1.Quit(acQuitSaveAll);
end;
Das funktioniert auch wunderbar, der Report wird gedruckt und fein.
Allerdings habe ich ein Problem - der Report basiert auf einer Kreuztabellenabfrage. Diese ist in der
Access DB gespeichert.
Das heißt, dem Report kann ich keine Filterktierien übergeben sondern ich muß der der KreuzQry zugrundeliegenden Qry einen Parameter übergeben.
In
Access mache ich das über
Dim qdf as DAO.QueryDef
Dim sql_str_tbl as String
sql_str_tbl="SELECT ... FROM ..."
qdf = CurrentDb.QueryDefs("qyr_EmplByDate")
qdf.SQL = sql_str_tbl
Set qdf = Nothing
Keine Ahnung wie diese Qry von Delphi aus neu formulieren kann
Tom