Access 2007使用宏填充报表

时间:2012-05-02 10:56:40

标签: vba ms-access report

我有一个学生应用程序数据库,其中包含一个包含每个应用程序信息的表单。

我想从表单中创建一个报告(我不确定是否应该使用宏或命令按钮)但它应该做的是在点击时,它应该创建一个仅包含来自当前正在显示在表单上的应用程序。

我创建了一个如下所示的报告:

enter image description here

要创建宏(单击时在打印预览模式下打开报表)我在宏设计中的where框下使用了以下条件:[Application]![Record ID] = [Forms]![Form]![记录ID]

但是,当我单击表单上的宏时,它会显示报告,但不会使用表单中的数据填充报告中的字段。

我问的问题是,如何通常在表单上创建一个按钮,一旦点击就会显示一个打印预览,其中包含该表单中包含的信息(不是多个记录)

谢谢,

汤姆

2 个答案:

答案 0 :(得分:2)

它应该像这样简单(在VBA中,而不是宏):

If Me.NewRecord = False Then
    DoCmd.OpenReport "rptMyReportName", acViewPreview, , "[RecordID] = " & Me!RecordID
End If

作为旁注,最好不要在设计表时在字段名称中使用空格或符号。我会将记录ID更改为RecordID。

答案 1 :(得分:2)

我不确定如何使用宏来完成此操作。我从不使用宏 - 你可以做宏用vba做的所有事情 - 而且很简单:

Private Sub ReportOpenButton_Click()
On Error GoTo Err_ReportOpenButton_Click

If Not Me.NewRecord Then
    DoCmd.OpenReport "My_Reportname", acPreview, , "[ID] = " & Me![ID]
Else
  If MsgBox("Save the new Record ?", vbQuestion & vbOKCancel, "Attention") = vbOK Then
    RunCommand acCmdSaveRecord
    DoCmd.OpenReport "Bericht1", acPreview, , "[ID] = " & Me.ID
  End If
End If

Exit_ReportOpenButton_Click:
    Exit Sub
Err_ReportOpenButton_Click:
    MsgBox Err.Description
    Resume Exit_ReportOpenButton_Click:
End Sub

这里重要的部分是:[ID]是报告中ID字段的名称,Me![ID]是执行此命令的形式中的id字段的名称(me)。所以最后一个参数“[ID] =”&我![ID]表示字符串“[ID =”和我表格的字段ID中的数字将连接到“[ID] = 7”。

因此该行执行一个读取

的宏

OpenReport my_reportname,inPreviewMode,ID = 7

编辑:添加了一些代码以保存当前记录(如果是新的