调试步骤1、测试双击打开窗口才会有问题,在窗口设计预览就没有问题,说明是双击事件代码的问题
2、打开双击事件代码,只保留打开窗口的代码,注释其它代码测试,没有问题,说明问题在注释掉的代码里
3、逐行启用注释的代码测试,发现启用给TextBox2控件赋值的代码后,就会有问题,说明问题和这个控件有关
Forms("出纳录入收款数据").Controls("rq").text = e.Row("日期")
Forms("出纳录入收款数据").Controls("dh").text = e.Row("出纳入账顺序号")
Forms("出纳录入收款数据").Controls("dh1").text = e.Row("出纳账安日期生成单号辅助列")
Forms("出纳录入收款数据").Controls("TextBox2").text = e.Row("前缀") & ":"
4、检查这个控件,没有任何事件代码,那就应该是用到这个控件的其它控件的代码有问题
5、往上看赋值使用到的控件是dh1,也没有事件代码,再往上看,dh控件有“Validating”事件代码,注释这个代码测试后没有问题,说明问题在这里
6、结合错误提示【标准表达式中数据类型不匹配。】,“Validating”事件用到表达式的只有使用的sql里,说明sql合并的查询条件有问题
表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。
例如:
Tables("订单").Filter = "[产品] = 'PD01'" '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#" '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1" '数值直接使用
最后自己思考一下,为什么给TextBox2控件赋值后才会出错