怎样让DELPHI打印在ACCESS中设计好的报表?怎样让DELPHI打印在ACCESS中设计好的报表?

解决方案 »

  1.   

    根据上面的文章改了一下:
    ////////////////////////////////
      AccessApplication1.Connect;
      AccessApplication1.Visible := True;
      AccessApplication1.OpenCurrentDatabase('C:\aaa.mdb', True);
      AccessApplication1.DoCmd.OpenReport('报表1', acViewNormal, EmptyParam,
      EmptyParam);
      AccessReport1.ConnectTo(AccessApplication1.Reports['报表1']);
      AccessReport1.Caption := '报表打印的例子';
    //////////////////////////////////////////////////////////////////
    以下来自MSDN:
    ////////////////////////////////////////////
    DoCmd 对象允许您执行各种 Microsoft® Access 命令。这些命令在 Access 宏中使用时叫做操作,在代码中执行时叫做 DoCmd 对象的方法。注意   在其它 Microsoft® Office 应用程序中,“宏”其实就是 VBA 过程。而在 Access 中,宏和过程中的 VBA 代码根本不同。有关 Access 宏的详细信息,请在 Microsoft® Access 帮助的索引中搜索“宏, 概述”,然后打开主题“宏:定义及其工作方法”。
    两个最常见的需要使用 DoCmd 对象方法的任务是打开和关闭 Access 对象。打开 Access 对象要用 DoCmd 对象的 OpenObject 方法,其中 Object 代表的是要打开的对象的名称。例如,可用 OpenForm 方法打开一个窗体,用 OpenReport 方法打开一个报表,用 OpenQuery 方法打开一个查询。所有的 OpenObject 方法都需要参数来指定打开哪个对象以及如何显示对象。例如,下面的代码可在“窗体”视图 (acNormal) 中以只读方式打开 Customers 窗体,并指定只显示美国的用户:DoCmd.OpenForm FormName:="Customers", View:=acNormal, _
       WhereCondition:="Country = 'USA'", DataMode:=acFormReadOnly 
    可以使用 OpenReport 方法在“设计”视图或“打印预览”中打开一个报表,也可以指定打印该报表,如下例所示:DoCmd.OpenReport ReportName:="CustomerPhoneList", _
       View:=acViewNormal, WhereCondition:="Country = 'USA'"
    注意   在 OpenReport 方法的视图参数中使用 acViewNormal 常量时,报表不显示,而是直接打印到默认打印机。
    使用 DoCmd 对象的 Close 方法可以关闭 Access 对象。可以使用 Close 方法的可选参数来指定要关闭的对象以及是否保存更改。下面的示例将关闭 Customers 窗体,不保存更改:DoCmd.Close acForm, "Customers", acSaveNo
    注意   Close 方法的所有参数都是可选参数。如果使用该方法时不指定参数,它会关闭当前活动的对象。
    使用 DoCmd 对象的 RunCommand 方法可运行 Access 菜单或工具栏上有的而在 Access 对象模型中没有专门方法的命令。RunCommand 方法用一个枚举常量集合来代表可用的菜单命令和工具栏命令。有关 RunCommand 方法的详细信息,请在 Microsoft® Access Visual Basic® 参考帮助的索引中搜索“RunCommand 方法”。