如何在 ms Access 报告中使用别名

Posted

技术标签:

【中文标题】如何在 ms Access 报告中使用别名【英文标题】:How do I use an Alias in my Acess report 【发布时间】:2016-04-20 14:00:59 【问题描述】:

我在我的 Access SQL 查询中创建了一个别名,当我运行我的查询时它显示为有效列,但是当我尝试在我的报告中使用该字段时,它恢复为原始名称和值。如何让报告提取在我的记录堆栈中返回的别名的值?我是否必须通过 VBA 执行此操作?

这是我报告的记录来源的查询:

SELECT
    ISO_ID.ISOID,
    ISO_Stats.TransactionCount,
    ISO_Stats.TerminalCount,
    ISO_Stats.MonthEnd,
    m2.TerminalCount,
    m2.TransactionCount,
    m2.MonthEnd,
    m3.TerminalCount,
    m3.TransactionCount,
    m3.MonthEnd
FROM
    (((ISO_ID
    INNER JOIN ISO_Stats AS m2
    ON ISO_ID.[ISOID] = m2.[ISOID])
    INNER JOIN ISO_Stats
    ON (ISO_ID.ISOID = ISO_Stats.ISOID) AND (ISO_ID.InstNbr = ISO_Stats.InstNbr))
    INNER JOIN ISO_Stats AS m3
    ON ISO_ID.[ISOID] = m3.[ISOID])
WHERE
        (((ISO_Stats.MonthEnd)=DateSerial(Year(Date()),Month(Date()),0))
    AND ((m2.MonthEnd)=DateSerial(Year(Date()),Month(Date())-1,0))
    AND ((m3.MonthEnd)=DateSerial(Year(Date()),Month(Date())-2,0))
    AND ((ISO_ID.Cancelled)<>"Y") )
ORDER BY ISO_ID.ISOName;

【问题讨论】:

是的。我进入报告属性并从数据源获取查询。它显示为可用字段并在设计视图中正确显示。但是,当我查看报告时,它会显示原始字段的值。当我返回设计视图时,该标签的数据源会反映原始字段。 实际上我已经创建了三个,使用内部连接,我可能应该提到过,所有三个都以相同的方式运行。 选择 ISO_ID.ISOID, ISO_Stats.TransactionCount, ISO_Stats.TerminalCount, ISO_Stats.MonthEnd, m2.TerminalCount, m2.TransactionCount, m2.MonthEnd, m3.TerminalCount, m3.TransactionCount, m3.MonthEnd跨度> FROM (((ISO_ID INNER JOIN ISO_Stats AS m2 ON ISO_ID.[ISOID] = m2.[ISOID]) INNER JOIN ISO_Stats ON (ISO_ID.ISOID = ISO_Stats.ISOID) AND (ISO_ID.InstNbr = ISO_Stats.InstNbr)) INNER JOIN ISO_Stats AS m3 ON ISO_ID.[ISOID] = m3.[ISOID]) WHERE (((ISO_Stats.MonthEnd)=DateSerial(Year(Date()),Month(Date()),0)) AND ((m2.MonthEnd)=DateSerial(Year(Date( )),Month(Date())-1,0)) AND ((m3.MonthEnd)=DateSerial(Year(Date()),Month(Date())-2,0)) AND ((ISO_ID.Cancelled )"Y") ) 按 ISO_ID.ISOName 排序; 【参考方案1】:

您的查询的SELECT 列列表包含重复的列名。使用别名,使查询结果集中的列名不同:

SELECT
    ISO_ID.ISOID,
    ISO_Stats.TransactionCount AS [TransactionCount_i],
    ISO_Stats.TerminalCount AS [TerminalCount_i],
    ISO_Stats.MonthEnd AS [MonthEnd_i],
    m2.TerminalCount AS [TerminalCount_2],
    m2.TransactionCount AS [TransactionCount_2],
    m2.MonthEnd AS [MonthEnd_2],
    m3.TerminalCount AS [TerminalCount_3],
    m3.TransactionCount AS [TransactionCount_3],
    m3.MonthEnd AS [MonthEnd_3]

您将需要修改报告以使用这些别名列名,但是当处理重复的列名时,您应该能够避免报告混淆。

【讨论】:

完美!效果很好。

以上是关于如何在 ms Access 报告中使用别名的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 如何在报告中显示查询名称

即使没有结果,如何在分组的 MS Access 报告中显示类别

如何使用存储在数据库字段中的相对路径在 ms access 2013 报告中显示图像

如何在 Oracle 身份验证中使用 MS Access 连接字符串

如何过滤 3 个文本框,然后在 MS Access VBA 中根据它们运行报告

如何在 MS Access 中保留导航弹出表单中的数据