【问题标题】:MS ACCESS Report - Using CODE to change a value in a field from an OPTION Group to a different valueMS ACCESS 报告 - 使用 CODE 将字段中的值从选项组更改为不同的值
【发布时间】:2017-08-01 02:14:21
【问题描述】:

我在 ACCESS 中有一份报告,该报告基于对带有选项组的表单填充的表的查询。 (为了更好地解释这一点 - 表是检查员资格,查询提取检查员的所有资格,通过填充检查员资格表字段的表单上的选项组选择资格。)当然,选择在表中存储为数值“1、2、3 或 4”,但 4 实际上表示 N/A 或 NONE。由于所有内容都已经以这种方式构建,因此我正在尝试编写一个代码,该代码将在生成(或打开)报告时运行,该代码将输入“4”值(如果字段等于该值)并将其更改为报告中的空值/空白 - 不在查询或表中。我仍然希望此报告按原样生成其他所有内容 - 显示所有记录 - 如果该特定选项是该特定记录的该字段中显示的选项,则只需更改值。 有人知道这样做的好方法吗?任何帮助将不胜感激!!!!

【问题讨论】:

  • 该报告的查询是否在其他任何地方使用?如果没有,那么为什么不更改查询 - 这是最简单的地方。否则,您将需要使用 VBA。
  • 不,我不相信。更改查询的最佳途径是什么?

标签: sql-server ms-access vba ms-access-2010 ms-access-2016


【解决方案1】:

您只需在查询中放置一个“IIF”来测试您要更改的值,然后将其更改为其他值,或保留原始值。下面将测试字段“Nbr1”是否存在 4,如果找到,将其更改为“N/A”,否则保持不变。

注意!您需要更改报告中的控制源以反映您提供的名称(即“MyChange”),因为您无法保留原始名称。

SELECT Table1.ID, Table1.EMPID, Table1.TestResult, 
       IIf([Nbr1]=4,"N/A",[Nbr1]) AS MyChange, Table1.Nbr2
       FROM Table1;

【讨论】:

  • 抱歉,我使用“N/A”的地方,我看到你想要空,所以只需使用“”。
  • 感谢您提供的信息 - 很抱歉对此充满了疑问。我最初的想法是在查询中创建一个 IIF 语句,尝试进行此更改。我没有得到这个为我工作。我相信这是因为我可能已经在提取所有信息的查询中完成了它并且没有创建第二个查询?我在上面看到您说“在测试您要更改的值的查询中”。我是否应该先进行查询,然后将报告中所需的所有内容都拉到第二个查询中?
  • 您说报表的记录源是查询。因为我不知道那是什么样子,所以我提供了一些可行的方法 --- 除非您已经在该查询中执行了一些会改变相关字段的操作。您没有提及该字段的名称或它的派生方式。您能否发布您的查询,或者以我的示例为例,更改表和字段名称,然后看看您会得到什么。
  • Wayne - 非常感谢您提供的信息 - 我一定会保留它以备将来使用。在这种特殊情况下,我的大脑完全放屁了——我可以简单地通过对有问题的单元格使用条件格式来解决我的问题。 (这是一个选项组,将单元格填充为值的 1、2、3、4,而不是标签 I、II、III 或无(变为 4。))我所做的只是在单元格上调用条件格式当值等于 4 时,它将文本更改为白色,使其成为空白字段。这似乎工作得很好。再次感谢您的知识!
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多