如何使用 Visual C#自动化 Microsoft Access

 我来答
zxh4567
2015-01-08 · TA获得超过6.1万个赞
知道大有可为答主
回答量:2.2万
采纳率:83%
帮助的人:1.3亿
展开全部

  
要预览或打印 Access 报表,可以调用 DoCmd 对象的 OpenReport 方法。当您调用OpenReport 方法时,您传递的一个参数将确定是在屏幕上预览报表还是将报表发送到打印机: 
// Preview a report named Sales: oAccess.DoCmd.OpenReport( 
   "Sales", //ReportName 
   Access.AcView.acViewPreview, //View 
   System.Reflection.Missing.Value, //FilterName    System.Reflection.Missing.Value //WhereCondition    );  
// Print a report named Sales: oAccess.DoCmd.OpenReport( 
   "Sales", //ReportName 
   Access.AcView.acViewNormal, //View 
   System.Reflection.Missing.Value, //FilterName    System.Reflection.Missing.Value //WhereCondition    );  
 
 
 
 
请注意,View 参数确定是在 Access 中显示报表还是将报表发送到打印机。WhereCondition 参数在您使用有效的 SQL WHERE 子句时可以限制报表的记录集(无需使用 WHERE 一词)。请注意,您可以使用 System.Reflection.Missing.Value 来跳过任何可选的对象参数。  
如果您要预览报表,请确保设置了 Application 对象的 Visible 属性,以使 Access 在屏幕上可见。这样,用户就可以在 Access 窗口中查看报表了。  
还可以通过另外一种方式来打印报表或数据库中的其他对象,这就是使用 DoCmd 对象的 PrintOut方法。在本示例中,用户在“数据库”窗口中选择了名为 Employees 的报表,然后调用 PrintOut 来打印选定的对象。PrintOut 方法允许您提供与 Access 中的“打印”对话框相对应的参数: 
// Select the Employees report in the database window: oAccess.DoCmd.SelectObject( 
   Access.AcObjectType.acReport, //ObjectType    "Employees", //ObjectName    true //InDatabaseWindow    );  
// Print 2 copies of the selected object: 
  
oAccess.DoCmd.PrintOut( 
   Access.AcPrintRange.acPrintAll, //PrintRange    System.Reflection.Missing.Value, //PageFrom    System.Reflection.Missing.Value, //PageTo    Access.AcPrintQuality.acHigh, //PrintQuality    2, //Copies 
   false //CollateCopies    );   
 
 
 
或者,在某些情况下,您可能希望同时使用 OpenReport 方法和 PrintOut 方法打印报表。假设您希望仅为特定雇员打印多份 Employees 报表副本。本示例首先使用 OpenReport 在预览模式下打开 Employees 报表,使用 WhereCondition 参数将记录限制为特定的雇员。然后使用 PrintOut打印活动对象的多份副本: 
// Open the report in preview mode using a WhereCondition: oAccess.DoCmd.OpenReport( 
   "Employees", //ReportName 
   Access.AcView.acViewPreview, //View 
   System.Reflection.Missing.Value, //FilterName    "[EmployeeID]=1" //WhereCondition    );  
// Print 2 copies of the active object:  oAccess.DoCmd.PrintOut( 
   Access.AcPrintRange.acPrintAll, //PrintRange    System.Reflection.Missing.Value, //PageFrom    System.Reflection.Missing.Value, //PageTo    Access.AcPrintQuality.acHigh, //PrintQuality    2, //Copies 
   false //CollateCopies    );  
// Close the report preview window:  
oAccess.DoCmd.Close( 
   Access.AcObjectType.acReport, //ObjectType    "Employees", //ObjectName 
   Access.AcCloseSave.acSaveNo //Save    );  
 
 
 
 
  
Access 2002 引入了 Printer 对象。可以使用此对象自定义 Access 打印机设置,这比早期版本的 Access 更加容易。要获得在 Access 中使用 Printer 对象打印报表的示例,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 284286  如何重新设置 Application.Printer 对象的更改 显示和编辑 Access 窗体 
Visual C# .NET 具有非常强大的窗体功能。但是,可能会时常出现以下情况,即您希望用户查看以前在 Access 中开发的窗体。或者,您的 Access 数据库中可能有一个提供查询或报表条件的窗体,您必须打开该窗体才能预览或打印报表。要打开并显示 Access 窗体,需要调用 DoCmd 对象的 OpenForm 方法: 
// Show a form named Employees: oAccess.DoCmd.OpenForm( 
   "Employees", //FormName 
   Access.AcFormView.acNormal, //View 
   System.Reflection.Missing.Value, //FilterName 
   System.Reflection.Missing.Value, //WhereCondition    Access.AcFormOpenDataMode.acFormPropertySettings, //DataMode 
   Access.AcWindowMode.acWindowNormal, //WindowMode    System.Reflection.Missing.Value //OpenArgs    );   
 
 
 
现在,您可以编辑窗体上的控件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式