我正在从Access 2010中的表生成报告,但是当我尝试将表达式用作controlsource
或textbox
的ActiveX控件时,我会看到一些奇怪的行为。< / p>
如果我textbox
controlsource
JOB_ID
,那么它工作正常,显示正确等等但如果我有textbox
其中controlsource
是=[JOB_ID] & " " & [PART_ID]
=[JOB_ID]
甚至只是textbox
然后在布局视图和报告视图中,文本框显示为空白,直到我点击它并将光标放在该框中,然后它显示它应该为什么光标在JOB_ID
中(即表达式的结果)。
报告的打印预览似乎也很好。
ActiveX控件也一样 - 我需要在报表的每一行打印一个条形码,所以我插入了一个Microsoft Barcode ActiveX控件,如果只使用=[JOB_ID]
那么它显示正常,但如果我使用{{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。现在再次紧凑。
和以前一样,请在尝试任何这些事情之前进行备份。