输入日期31/06/2016
,即2016年6月31日
qdf.Parameters("Forms!frmReport!EndDate") = frm!EndDate
错误消息是:
运行时错误'3421': 数据类型转换错误。
答案 0 :(得分:1)
嗯......你到底想要 else 到底是什么? : - D 确实,不可能“转换”6月31日!
所以,有效的问题:“现在是什么?”
“是啊...这是擦......”
您需要做的是在捕获此异常时设置运行时错误处理块(在Visual Basic中为“on error goto
... resume next
”)什么时候可能会抛出。
BTW: 理由为什么事情以这种方式完成,“99.9%的时间,转换将成功,直到用户胖手指一把钥匙。“因此,胖手指是:'一个例外',应该非常有效地对待它。而不是通过常量(!)检查来加重我们的代码以查看日期转换是否成功 ......带来强烈可怕的(!!)后果,我们不应该包括一个单一的悲惨测试。我们使用异常抛出机制来单独排除(罕见)情况。
因此,“如果你做”到达下一个语句,''你可以肯定(!)转换成功,因为,“如果它没有,你就不会(立即......)在这里。“
不是通过返回代码向你报告他们的失败,而是要求你“测试每一个,每个(!)时间,或多或少地对死亡的痛苦”,函数处理“例外”规则“作为他们的例外......并且迫使你准备好”抓住“他们。
答案 1 :(得分:1)
frmReport
。 EndDate
控件。 使用该设置,Access将不允许您在EndDate
中输入无效日期(例如2016年6月31日)。由于它已经是日期/时间值,因此在用于查询参数时,您不需要进行数据类型转换。