我发现报表页眉和主体是一样的,是不是都是文本框控件写的?DLOOKUP函数怎么用?

写表达式时什么时候加等号

1)在报表的页眉和主体内,均可以使用大部分类型的控件,例如文本框、标签、图像、子窗体...等等,控件可以是绑定的或非绑定的,不一定只能使用文本框。至于怎样用那就要发挥想象力了,可以是千变万化的,这里无法展开。

页眉/页脚会在报表的每一页的开始位置和底部显示,用于报表各页的通用和专用信息。主体则用于显示报表的记录,我们还可以使用组页眉/组页脚对主体记录实施分组,以显示各个分组的汇总信息。

2)关于DLookup函数如何用,请看下列本人以往发表的百度空间文章节选

“DLookUp”函数是ACCESS数据库中一个很有用的内置函数。它可以从当前ACCESS数据库内的表或已保存的查询里面,根据筛选表达式非常方便地查找出一个字段值(也可以是基于单个或多个字段数据的表达式计算值)D=Direct(直接)、LookUp(查找),DLookUp意味着直接查找“一个值”而并不是一条记录。
语法
DLookup("输出表达式", "被查找的表或查询名", "筛选表达式")
参数说明
输出表达式——必选参数,需要用英文双引号将该参数括住。需要输出的字段名或者对这个字段上的数据进行计算之表达式
被查找的表或查询名——必选参数,需要用英文双引号将该参数括住。需要从中查找数据的表或预设的查询名(如果是查询则该查询不得带参数),表名和查询名必须是在数据库中实际存在的
筛选表达式——可选参数,如果选用需要用英文双引号将该参数括住。限制被查表或查询的记录范围之筛选表达式,用于筛选的字段必须是在被查表或查询中实际存在的

下面举例说明DLookUp函数参数的具体用法:
学生表
ID(自增ID) 姓名(文本) 性别(文本) 班级(文本) 生日(日期)
1 张三 女 1-1 2001-01-01
2 李四 男 1-2 2001-02-02
3 张三 男 1-3 2000-09-01
4 王五 女 2-2 2000-09-01

a. DLookUp("[姓名]","学生表","[ID]=2") 返回 李四
b. DLookup("[性别]", "学生表", "[姓名]='王五'") 返回 女
请留意a、b两例筛选表达式的书写方法上的不同。a例的“2 ”未加英文单引号其原因是[ID]字段数据类型属于数字,而b例的“王五”有英文单引号其原因是[姓名]字段数据类型属于文本。
c. DLookup(" [姓名] & '\' & [性别] & '\' & [班级]", "学生表", "ID=2") 返回 李四\男\1-2
请留意a、b例只输出单个字段,而c例则输出一个表达式将[姓名]、[性别] 、[班级]这3个字段用“&”连接符合并在一起中间用斜杠隔离
d. DLookup("[班级]", "学生表") 返回 1-1
由于d例没有筛选表达式,表中全部记录参与挑选,在记录大于一条的情况下,DLookUp函数将选取第一条记录输出相应的函数值,所以返回第一条记录的[班级]字段值
e. DLookup("Left([姓名],1)", "学生表", "[ID]=2") 返回 李
e.例使用Left()函数截取[姓名]字段的第一个字符进行输出
f. DLookUp("[生日]","学生表","[姓名]='张三' AND [性别]='男'") 返回 2000-09-01
f.例使用双字段筛选,提取两个“张三”中,性别为男的那位学生的生日予以输出
g. DLookUp("[姓名]","学生表","[生日]=#2000-09-01#") 返回 张三
请注意对日期字段进行筛选时必须用一对“#”号将筛选日期括住,另外由于表中有两位学生生日同为2000-09-01,函数选取符合条件的第一条记录予以输出,g例输出“张三”而抛弃“王五”
h. DLookup("[性别]", "学生表", "[姓名]='张平'") 返回 空值(NULL)
由于表中没有“张平”的记录,h例输出空值

关于DLookUp函数参数或参数表达式填写的几个注意事项:
1)必须使用英文标点符号(不包括作为文本字符串出现的标点符号);
2)将字段用方括号括起来不是必须的,但是若有关键字冲突时或者字段名内含空格时则必须使用;
3)如果在参数里引用文本字符串务必将其用引号括住,外层有双引号时须使用单引号而不能使用双引号;
4)如果在参数里引用日期务必将其用一对#字号括住。

在DLookUp函数参数里引用窗体控件和变量的方法:
1)完整引用 [Forms]![窗体名]![控件名]
例如DLookup("[ID]", "学生表", "[姓名]=[Forms]![窗体1]![TEXT1]")
注意:DLookUp能够识别参数完整引用窗体控件,使用时无需考虑对文本加引号和对日期加#号的问题,建议初学者使用这种方法在参数中引用窗体控件。在查询对象里或控件属性里则必须使用完整引用。引用非当前窗体控件时也要采取完整引用。
2)在当前窗体非完整引用窗体控件
例如DLookUp("[ID]","学生表","[姓名]='"& Me.[TEXT1] &"'") 引用当前窗体文本框TEXT1,注意因为是文本这里要使用了单引号,这种非完整引用方法速度比完整引用快,但是不适用于当前窗体以外的控件。
3)VBA代码中DLOOKUP函数参数里引用变量
引用一个名为StudentName的字符串型变量>>DLookUp("[ID]","学生表","[姓名]='"& StudentName &"'")
Dim StudentName as String
StudentName="李四"
DLookUp("[ID]","学生表","[姓名]='"& StudentName &"'") 返回 2
引用一个名为StudentID的数字型变量>> DLookUp("[姓名]","学生表","[ID]="& StudentID)
Dim StudentID as Long
StudantID=4
DLookUp("[姓名]","学生表","[ID]="& StudentID) 返回 王五
引用一个名为StudentSR的日期型变量>> DLookUp("[姓名]","学生表","[生日]=#"& StudentSR & "#")
Dim StudentSR as Date
StudentSR=#2000-09-01#
DLookUp("[姓名]","学生表","[生日]=#"& StudentSR & "#") 返回 张三

*注意:VBA里请留意很多情况下,当DLookUp函数返回空值(NULL)时,代码运行可能会出错,此时就要对该函数返回空值时的情况做适当处理以确保代码能正常运行。追问

3)如果在参数里引用文本字符串务必将其用引号括住,外层有双引号时须使用单引号而不能使用双引号; 文本字符串是什么? 是不是查询里的字段也可以不用大括号括起来

追答

所有的文本类型的参数都可以理解为字符串,例如 中国、张三、李四、00_98等,当然数字也可以当做字符串处理,例如100 加上引号后"100" 系统就会将100按文本类型参数"100"进行运算处理了。

关于问题“是不是查询里的字段也可以不用大括号括起来”,请看我的回答已经有详细说明******************************************

“将字段用方括号括起来不是必须的,但是若有关键字冲突时或者字段名内含空格时则必须使用;”
*****************************************

追问

我还是不明白什么时候加双引号?这张图里的字段就没加双引号,还有03为什么加了双引号?5没加

追答

是的。你将它们当做文本来处理那它们就是字串,所有的字符都可以当做字串处理,但是字串当做数字处理就不一定都行了,必须是可被识别的纯数字字串才可当做数字进行处理

追问

好晕,我感觉我以后看见文本字符串都要加双引号了。。。还有要是如此的话 DLookup(" [姓名] & '\' & [性别] & '\' & [班级]", "学生表", "ID=2") 中&不也应该加单引号

追答

请注意,学生表ID字段的数据类型是自增ID,其类型属于数字。

好好看一看我之前的解说吧,解释的内容都是非常详细全面的!!!请仔细阅读

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考