|
|
1
2
无论是本地化还是数据库格式,在任何情况下,true都不是false,也不是0。 因此,如果将所有“真”测试替换为“非0”,将所有“假”测试替换为“0”,那么就避免了访问关键字的本地化问题(但令我惊讶的是,VBA、Jet和Access Expression Services仍然无法理解“真/假”),以及数据库引擎用于存储布尔值的任何约定。S. 一般来说,您的数据访问层应该为您将其抽象化。ODBC和ADO都是自动完成的,所以你可以使用你知道的布尔值,在我的经验中,它对你的处理是透明的。 我仍然对这个问题感到困惑,因为它听起来像是一个显示/格式化问题,但是使用非0和=0表示“真”和“假”可以完全避免所有情况下的问题。 编辑:关于编辑成菲利普问题的功能: 是否存在将函数参数隐式定义为变量的原因?这就是你的意思吗?如果它传递了一个空值,那么第一个cint()就会出错,因为cint()不能接受空值。 而且,在vba中有一个逻辑问题,除了0以外的任何数字都应该返回true。它也是完全冗余的代码。这很简单,在所有情况下都返回正确的结果:
或者,仍然是:
要处理参数中传递的空值,请执行以下操作:
我不确定在您当前使用它的上下文中是否有必要这样做,但我始终不喜欢编写代码,在这种情况下,我可以想象它会出错——即使我知道它不能在当前上下文中中断,您永远不知道它可能在何处使用,因此,如果您预期一个可以处理的条件,您应该处理它。 过早优化? 不——这是在武器上安全锁,以防被误用。 (另一方面,如果处理反向错误所用的代码行数比函数开始时所用的代码多,我会仔细考虑一下) |
|
|
2
1
您是否考虑在更新和删除查询中使用-1/0(访问对于布尔值很奇怪)而不是true/false? 数学是通用语言,雅克诺。 另外,为了避免对UI进行如此多的本地化,为什么不使用复选框而不是文本字段来显示UI上的布尔值呢? |
|
|
3
0
简单:
|