在查询中设置字段格式以进行报告

时间:2018-08-30 12:02:22

标签: ms-access format

报表字段是否可以考虑查询中字段的格式?

例如:

我在查询中有一个StudentPercent字段。该字段的值介于0到1之间,但是由于将其格式化为百分比,因此它们的显示范围为0%到100%。运行报表时,它不考虑字段的格式,并且值在0到1之间。为什么?

编辑1:我正在使用Microsoft Access 2016。 另外,数据是动态填充的,所以我不能只是手动设置字段的格式。

编辑2:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
'Exit Sub
'  Place values in text boxes and hide unused text boxes.

    Dim intX As Integer
    '  Verify that not at end of recordset.
    If Not rstReport.EOF Then
        '  If FormatCount is 1, place values from recordset into text boxes
        '  in detail section.
        If Me.FormatCount = 1 Then
            Me("Col" + Format(intColumnCount + 1)) = 0
            For intX = 1 To intColumnCount
                '  Convert Null values to 0.
                Me("Col" + Format(intX)) = Nz(rstReport(intX - 1))
                If intX < intColumnCount Then
                    Me("Col" + Format(intColumnCount + 1)) = _
                    Me("Col" + Format(intColumnCount + 1)) + Nz(rstReport(intX))
                End If
            Next intX

            '  Hide unused text boxes in detail section.
            'For intX = intColumnCount + 2 To conTotalColumns
                'Me("Col" + Format(intX)).Visible = False
            'Next intX
        For intX = 2 To intColumnCount + 1
            Me("Tot" + Format(intX)) = Nz(Me("Tot" + Format(intX))) + Nz(Me("Col" + Format(intX)))
        Next intX

            '  Move to next record in recordset.

            rstReport.MoveNext
        End If
    End If
End Sub

^是我报告详细部分的代码。 我收到错误“ 13”-在使用Format(FieldName,“ Percent”)强制转换字段后运行报表时键入不匹配,并且以下代码突出显示:

                Me("Col" + Format(intColumnCount + 1)) = _
                Me("Col" + Format(intColumnCount + 1)) + Nz(rstReport(intX))

1 个答案:

答案 0 :(得分:2)

将报表中文本框的 Format 属性设置为:百分比

或者,展开源查询以具有一个字段,该字段以文本形式返回格式化的值:

StudentPercentText: Format([StudentPercent],"Percent") 

然后在报告中使用此字段,而不是StudentPercent字段。但是,这是文本,因此您不能在报表的计算中使用此类字段。