本文暂且认为 Criteria 与“条件表达式”为同一概念 以下以三种层次来解答什么是条件表达式 微软 ACCESS 帮助中没有直接有关“条件表达式”的描述,我们只能暂用《表达式疑难解答》中有关表达式的描述: 表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。条件表达式可执行计算、操作字符或测试数据。 疑问:表达式可以主动去执行计算?一串文字怎么去操纵另一串字符? 注意:Expression(表达式)不等于Criteria(条件表达式) 陈格有关条件表达式的描述: 条件表达式本身是一串字符串,一串有专门格式的字符串,这串字符串由 ACCESS(或者其他软件)去解释并执行,ACCESS软件的各个环境中(比如查询、窗体的控件上、VBA代码中)有内置的事件与条件表达式挂钩,当数据或者用户的操作触发了某个内置事件,ACCESS会解释并执行与该事件或者该环境挂钩的条件表达式,并将结果返回给环境或者触发它的对象。所以条件表达式的解释和执行都是由ACCESS(软件)去完成的,我们也可以利用 ACCESS 提供的事件去写自己的表达式环境。 疑问:ACCESS是如何实现用内置事件(或者说“条件表达式”这种机制)去监视环境或者对象的? LucasLynn有关条件表达式的表述: 应该这么说,Access在内存中为许多数据对象建立了一个索引表,而Criteria被允许查询这张索引表,同时Criteria在被解释的时候,Access也对其进行了索引,并和其中引用的数据对象进行了关联。因此才能做到Criteria中的数据对象发生变更时,Criteria的值会被刷新。正是基于这个原理,我们可以利用Criteria来实现数据的监视,而不需要通过事件过程来编程。 提示:在理解LucasLynn的描述时,大家有必要去看一下LucasLynn在 OFFICE-CN 写的两篇文章 《Access中神秘的Criteria(上) 》 《Access中神秘的Criteria(下) 》 |