Access 2010 - 在报表中使用表达式作为控件源时的奇怪行为

时间:2014-07-09 09:15:50

标签: ms-access report ms-access-2010

我正在从Access 2010中的表生成报告,但是当我尝试将表达式用作controlsourcetextbox的ActiveX控件时,我会看到一些奇怪的行为。< / p>

如果我textbox controlsource JOB_ID,那么它工作正常,显示正确等等但如果我有textbox其中controlsource=[JOB_ID] & " " & [PART_ID] =[JOB_ID]甚至只是textbox然后在布局视图和报告视图中,文本框显示为空白,直到我点击它并将光标放在该框中,然后它显示它应该为什么光标在JOB_ID中(即表达式的结果)。

报告的打印预览似乎也很好。

ActiveX控件也一样 - 我需要在报表的每一行打印一个条形码,所以我插入了一个Microsoft Barcode ActiveX控件,如果只使用=[JOB_ID]那么它显示正常,但如果我使用{{1}}然后,在布局视图或报告视图中查看时,页面上的每个条形码都会闪烁。

也可能是相关的 - 在屏幕的左下角,当在控制源中使用表达式时,它会显示“正在计算...”,这似乎不会消失。这就像它不断重新计算它需要显示的价值,我无法弄清楚原因。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用报告,您最好在查询中创建这些计算字段,然后使用该查询来推送报告。

要在QBE中创建计算列,请使用以下语法:

MyCalculatedField:Job_ID&amp; “”&amp; PART_ID

这会在名为“MyCalculatedField”的查询中添加一列,然后您可以在报告中使用该列。显然,您还必须将所有其他相关列添加到查询中。

许多ActiveX控件与Access不兼容,即使这些控件来自Microsoft。您最好使用本机Access控件,或使用经过认证可与Access一起使用的控件。 IDAutomation(http://www.officebarcode.com/access-barcoding.html)和其他人都有一些兼容的控件。

关于计算...问题 - 您最近是否对数据库进行了维护?您应该备份数据库,然后尝试压缩它。如果这不起作用,请尝试将所有内容导入新的空白数据库,然后再次压缩。

有些人使用非文档反编译方法有好运。为此,请使用此目标创建一个快捷方式:

“msaccess.exe的完整路径”“db的完整路径”/反编译

运行它,然后再次压缩数据库。接下来,编译您的VBA代码 - 从VBA编辑器单击调试 - 编译并修复您运行的任何错误。继续这样做,直到禁用menuitem。现在再次紧凑。

和以前一样,请在尝试任何这些事情之前进行备份。