罗斯文数据库中,发货单报表中有文本框显示收货者的地区、城市、邮政编码信息。
在自己创建该报表的过程中,遇到一个问题,即该文本框显示#类型!错误,如下图:
反复检查控件来源中的表达式,并未发现问题。甚至直接从原罗斯文数据中复制表达式过来也不行。
思考:
1.会不会是Access版本问题?但是罗斯文数据库中显示正常,应该不是版本问题。
2.会不会是有宏或者代码?反复检查,并没有。
3.把罗斯文数据库中的控件直接复制过来,结果复制过来的控件也报错。看来是自己在什么地方没有设置正确。
那么到底是哪里出了问题呢?反复测试控件来源表达式,发现表达式中不出现“货主地区”时一切正常
。看来是“货主地区”出现冲突了。去原始表中检查,发现货主地区、货主城市、货主邮政编码
都是短文本类型的数据,应该不是数据类型的问题。
逐一对比自己创建的文本框和罗斯文中的文本框,终于发现两者有一处不一样:控件名称。罗斯文数据库中该文本框控件名为“货主城市地区邮政编码”,而自己创建控件的时候是直接从“添加现有字段”中将“货主地区”拖至报表编辑区的,因此文本框控件自带名字“货主地区”。于是控件表达式在执行时又读取了名为“货主地区”的控件(即控件自身)的值,存在循环调用的问题。
搞明白这一点之后再仔细观察,发现文本框控件前有出错提示:
无效的控件属性:控件来源
循环引用