首页 > 解决方案 > VBA代码循环记录集并根据文本框值打印不同的报告

问题描述

我需要根据文本框值打印不同的报告。我创建了简单的数据库。我有一张包含三个字段的表:记录编号、绿色和红色。一个查询从表中提取所有信息。一个带有打印按钮的表格,代码如下。我有 2 个基本报告 一个名为 rptred 和 rptgreen,在报告中它只是在文本框中提取记录号。我想要做的是当我点击打印时,如果文本框绿色有 Y,文本框红色有 N,那么我想打印一个绿色报告,报告上有记录号。如果文本框是绿色 N 和红色 Y,那么我希望它打印出带有记录号的红色报告。我试图在一个简单的数据库中完成这项工作,我可以在更复杂的数据库中使用代码。目前,我正在为每条记录获取正确的报告,但我没有在我的报告中获得文本框信息。表数据类型中的每个字段都是短文本。

当前代码:

选项比较数据库选项显式

Private Sub cmdprint_Click()
    Dim rst As DAO.Recordset
    Dim db As DAO.Database


    Set db = CurrentDb()
    Set rst = db.OpenRecordset("qrywpcmain")

    
    Do While Not rst.EOF
        If rst!Green.Value = "Y" Then
        DoCmd.OpenReport "rptgreen", acViewNormal, , "[Record Number] ="" & [Record 
        Number]&"""
        DoCmd.Close acReport, "rptgreen"
    End If
   
    If rst!red.Value = "Y" Then
        DoCmd.OpenReport "rptred", acViewNormal, , "[Record Number]= "" & [Record 
        Number]&"""
        DoCmd.Close acReport, "rptred"
    End If

    rst.MoveNext
    Loop

    rst.Close
    Set rst = Nothing
    Set db = Nothing

    End Sub

任何帮助是极大的赞赏。

标签: printing

解决方案


推荐阅读