Nolmë Informatique Asked: 2024-11-11 19:10:40 +0800 CST2024-11-11 19:10:40 +0800 CST 2024-11-11 19:10:40 +0800 CST Access 报告页眉中的 Ucase 772 我不明白为什么大写字母在我的标题页控件中不起作用。我尝试了 VBA 代码,但控件未激活。我尝试了源代码控件:=Ucase([Famille]),但结果没有改变。我在格式部分尝试了“>”,结果相同。 我遗漏了什么(我使用的是 Access 2019)?谢谢帮助。Vincent 编辑:这是屏幕截图(法语) ms-access 1 个回答 Voted Best Answer Olivier Jacot-Descombes 2024-11-11T20:52:03+08:002024-11-11T20:52:03+08:00 问题很可能是您的控件(我假设它是TextBox)具有名称Famille。如果您将其链接到公式=UCase([Famille]),则[Famille]此公式内部引用的是TextBox而不是数据源字段。这会产生递归并使 Access 感到困惑。 解决方案:将 重命名TextBox为与数据源字段不同的名称,例如:txtFamille,但保留控制源:=UCase([Famille])。 更新(发布图片后) 您正在使用 ComboBox(您没有提到这是问题所在)。有多种方法可以对其进行参数化。但Famille实际上可能是一个对应于家庭 ID 的数字,并且 ComboBox 会从另一个表中查找名称。在这种情况下,您无法将其应用于UCase()。Famille相反,您必须将其应用于用作 ComboBox 的行源的查询中。 例如(行来源): SELECT Famille, UCase(Description) AS Titre FROM tblFamille ORDER BY UCase(Description) 顺便说一句,我从不在报告中使用组合框。它们看起来不太好。相反,我将所需的信息链接到用作报告记录源的查询中,然后将其显示在文本框中。例如: SELECT p.Nom, UCase(f.Description) AS Titre, ... FROM tblPlante p LEFT JOIN tblFamille f ON p.Famille = f.Famille ORDER BY ... 使用命名约定也是一个好主意,这样更容易理解查询。例如,如果我有一个实体Famille,表名为tblFamille,主键列FamilleId和描述Famille。这使得哪一列是 Id 列更加明显。
问题很可能是您的控件(我假设它是
TextBox
)具有名称Famille
。如果您将其链接到公式=UCase([Famille])
,则[Famille]
此公式内部引用的是TextBox
而不是数据源字段。这会产生递归并使 Access 感到困惑。解决方案:将 重命名
TextBox
为与数据源字段不同的名称,例如:txtFamille
,但保留控制源:=UCase([Famille])
。更新(发布图片后)
您正在使用 ComboBox(您没有提到这是问题所在)。有多种方法可以对其进行参数化。但
Famille
实际上可能是一个对应于家庭 ID 的数字,并且 ComboBox 会从另一个表中查找名称。在这种情况下,您无法将其应用于UCase()
。Famille
相反,您必须将其应用于用作 ComboBox 的行源的查询中。例如(行来源):
顺便说一句,我从不在报告中使用组合框。它们看起来不太好。相反,我将所需的信息链接到用作报告记录源的查询中,然后将其显示在文本框中。例如:
使用命名约定也是一个好主意,这样更容易理解查询。例如,如果我有一个实体
Famille
,表名为tblFamille
,主键列FamilleId
和描述Famille
。这使得哪一列是 Id 列更加明显。