一般来说每个数据表都应该设一个id字段,这个字段唯一标识一条记录(通俗的讲就是记录不重复)。如果没有设id字段,那么你就需要在数据表中找几个字段,使得这几个字段联合起来能唯一标识一条记录。我们假设某个表中的三个字段f1、f2、f3联合起来可以唯一标识一条记录,那么对所谓“联合起来标识”就有几种处理方法,比如可以在数据表的设计视图中选中这三个字段然后将起设置为主键(id);再比如我们可以在查询中将三个字段用字符串连接符连接起来作为id,等等。
在以上查询中:...... [f1] & [f2] & [f3]<='" & [f1] & [f2] & [f3] & "'" 就是要找出所有小于等于当前id(三个字段字符串连接得到的id)的记录。其实这个算法并不完善,其原因在于字符串的比较方法是逐个字符出左到右比对。所以完善的写法是要对三个字段先进行格式化处理后再进行连接计算。
hwm0077同志 的数据表中如果已经存在一个f1字段能唯一的标识一条记录,那么这个字段就可以看成id了。如果这个字段是数字型的,可写为:
select *,dcount("*","tbname","[f1] <=" & [f1]) as ID from tbname
如若这个字段是字符型的,可写为:
select *,dcount("*","tbname","[f1] <='" & [f1] & "'") as ID from tbname
如若这个字段是日期型的,可写为:
select *,dcount("*","tbname","[f1] <=#" & [f1] & "#") as ID from tbname