1.VBA函数 abs(-2)=2 取绝对值函数 int(3.56)=3 取整数 int(-3.56)=-4 如果括号内为负数时取小于该数的第一个负整数 fix(3.56)=3 fix(-3.56)=-3 取整数 round(2.66,0)=3 四舍五入取整 round(2.56,1)=2.6 sqr() 开平方根函数 sqr(0)=0 rnd() 产生随机数 范围:(0,1)====0.000001---0.999999 int(85*rnd)=====[0,84] int(208 101*rnd)====[208,308] instr('abcdabcd','b')===2 b第一次在里面出现的位置 instr(3,'abcdabcd','b')===6 从第三位开始b第一次出现的位置 len('abcd')=4 left('123456',4)=1234 4表示取的位数 right('123456',4)=3456 4表示取的位数 mid('123456',2,4)=2345 2表示起始位置,4表示取的位数 replace('112345','1','2')=222345 space(2)==2个空格 len('a' space(2) 'b')==4 ucase('abCd')==ABCD 将小写字母转化为大写字母 lcase('abCd')===abcd 将大写字母转化为小写字母 ltrim(' abcd ')==abcd 删除前面空格 rtrim(' abcd ')== abcd 删除后面空格 trim(' abcd ')===abcd 删除前后空格 date() 系统当前日期 time() 系统当前时间 now() 系统当前日期和时间 year(date()) 当前年 month(date()) 当前月 day(date()) 当前日 weekday(#2015-12-19#)=7 一周的第几天 minute(time())==2 dateadd('yyyy',2,#2015-12-12#)===2017 dateadd('q',1,#2015-12-19#)==2016-3-19 datediff('yyyy',#2015-12-19#,#2014-12-16#)===1 datediff('ww',#2013-12-21#,#2014-1-2#)=2 日期拆分函数:dateserial(年,月,日) dateserial(2015-4,3,0)===2011-2-28 当前年当前月的最后一天: dateserial(year(date()),month(date()) 1,0) 当前年的一月一号: dateserial(year(date()),1,1) 次年的九月一号: dateserial(year(date()) 1,9,1) asc('a')==97 str(123)==='123' '123' 123 变体型 算数运算符: - * / \(整除) ^ mod(整除取余数) 4\3=1 有小数时,先将小数按四舍五入取整,然后再计算 mod 3 mod 2=1 1 mod 3=1 区分奇数和偶数: 2n 1 mod 2=1 , 2n mod 2=0 关系运算符(比较运算符):> < = >= <= <>(不等于) '人' < '人民' 逻辑运算符:not and or 优先级(运算的顺序):not>and>or 10<4 or 6>5 and 4>3===true 或真且假 连接运算符: & 符号两边的数据类型必须相同 & 符号两边的数据类型可以不相同,也可以相同,无任何要求
* / \ mod - 4 5\6*7/8 mod 9=5 (9 3)>2 and '张'<'人民' or true<false====true 逻辑运算符最后运行 2.VBA2 VBA(代码):visual basic for applications x=100 第一步定义:dim x as integer:rem 变量定义 第二部赋值:x=100:把常量100赋值给x 第三部输出:debug.print x [学费]*0.9 integer 整型 % single 单精度 ! double 双精度 # long 长整型 & 布尔型:boolean 相当于是否型 true -1 false 0 日期型:date 变体型:variant '123' 123 变量的命名规则:由数字,字母,下划线组成,必须以字母开头,且不能是关键字(if rem) 数组:一系列的数组合而成 array 一维数组:a(2):定义了3个数 a(0) a(1) a(2) 二维数组:a(2,5)定义了18个数 3*6==18 x=0,1,2 y=0,1,2,3,4,5 三维数组:a(2,4,4)定义75个数 3*5*5===75 x=0,1,2 y=0,1,2,3,4 z=0,1,2,3,4 dim newarray(10) as integer:定义了11个整数构成数组 option base 0/2 符号常量:pi e g 定义符号常量:const
3.VBA3 控制语句:选择结构(分支结构),循环结构,顺序结构 赋值语句:x=100 条件语句:if then end if 条件为真执行,条件为假不执行 当条件和结构写在同一行时不用end if 单条件多结构:if then else 条件为真执行第一个,条件为假执行第二个结果 if then elseif 多条件多结果 select case ---end select 从上到下只执行第一个条件为真的 选择函数:iif() switch() choose() iif(4<3,'a','b')===b switch(4>6,'a',4>1,'b',6>2,'c')====b 只执行第一个条件为真的结果 选择第几项:choose(2,'a','b','c')===b 循环语句(重复语句):2 2 2 2====8 第一次的2叫初值,加了4次叫做循环次数,最后得到8叫做终值, 每次加2叫做步长(公差) step for....next 从1到8每隔2这些数,1 3 5 7 9 循环次数=(终值-初值 1)/2====4 无限循环(死循环):ctrl break dowhile...loop do loop...while 条件为真执行,条件为假不执行 do until...loop do loop...until 条件为真不执行,条件为假执行 do until 4>3 n=1 f1=0 f2=1 f=1 f1=1 f2=1 n=2 f=2 f1=1 f2=2 n=3 f=3 f1=2 f2=3 n=4 f=5 f1=3 f2=5 n=5 f=8 f1=5 f2=8 n=6 f=13 f1=8 f2=13 n=7 f=21 f1=13 f2=21 n=8 f=34 f1=21 f2=34 n=9 f=55 f1=34 f2=55 n=10 f=89 s====0 1 2 3 4 5 ... 100===5050 goto语句:语句跳转,避免使用 x=5 x=x 2 x=7 x===5 参数的传递:按地址双向传递 byref 按值单向传递 byval docmd.openreport '报表名' ,acviewpreview :以预览的模式打开报表 acviewpreview 预览模式 acviewdesign 设计模式 acviewnormal 打印模式 inputbox:只接受文本型数据 计时器间隔以ms为单位:1s====1000ms 鼠标的触发事件:click,dbclick,mousedown(按下),mouseup(释放),mousemove on error goto 标号:处理错误 on error resume next:忽略错误 i=1 x=0 n=1 sum=0 i=2 x=1/2 n=2 sum=1/2 i=3 x=2/3 n=3 sum=1/2 2/3 i=4 x=3/4 n=4 sum=1/2 2/3 3/4 i=5 x=4/5 n=5 sum=1/2 2/3 3/4 4/5
i=1 a=2 i=2 a=4 i=3 a=5 i=4
Nz() 将不确定转化为没有 sum count avg max min Dcount Davg Dsum Dmax Dmin:当涉及到多个数据源时 Dlookup() 外数据源查询 4,数据库和表1 创建数据库 access数据库的拓展名叫 .accdb excel拓展名 .xlsx 或 .xls word拓展名 .doc ppt拓展名 .ppt 文本文件拓展名 .txt 以上内容不考 表的组成:表结构和表内容 表结构在表的设计视图,表内容在表的数据表视图 文本型数据:汉字,字母,不能计算的数字,最多储存255个字 备注型数据:255-65535 数字型数据:可以计算的数字 字节 byte 整型 integer 长整型 long 单精度 single 双精度 double 日期时间型:包括年月日 1995-12-12 字段长度为8 1000 货币型:自动添加货币符号,千分位分隔符,两位小数 自动编号:不允许用户更改 是否型:true 是 -1 < false 否 0 OLE对象:照片,图片,声音,视频,word文档,excel,ppt等大型的文档 超链接:网站 附件:附件 计算型:折扣学费 学费*0.99 学费字段必须来自本表 在ACCESS中,所有符号均在英文状态下书写 查阅向导针对的是文本型数据 将性别字段设置成可以从下拉列表中选择男,女,不详
定义主键:不能多,不能少 primary key 定义主键的规则:主键不能有重复值,不能有空值(null) 单字段主键:对一个字段建立主键 多字段主键:如果一个字段不能建立主键,此时建立多字段主键 自动编号就是主键
5.数据库和表2 设置字段属性(功能) 字段大小:允许输入的最多字符 每个汉字,字母,数字均占一个字段大小 字段属性:先选中字段,然后再改属性 格式属性:只影响数据的显示格式,但是不影响输入 标题:显示在数据表视图中的字段 输入掩码:影响输入,但是不影响显示 0 表示只能输入数字 一个0表示一位数字 9 表示输入数字或空格 L 表示输入字母,字母无大小写之分 A 表示输入数字或字母 a 表示输入字母,数字或空格 强行链接符号 shift 7 &&& 输入数据未知 在输入掩码处写 1.设置密码字段的属性,使其以*显示 2.0792-87654321 0792-12345678 设置电话号码的属性,使前五位原样输出,后八位为数字 '0792-'00000000 '(010)'00000000 对于文本型数据,要使其原样输出必须加定界符 ' ' 默认值(初始化值):在未输入数据之前,系统会自动提供一个数据 文本型数据必须加 '男' 日期时间型加 #2015-11-15# 是否型 true -1 < false 0 数字型直接输入,无任何符号 当前系统日期: =date() f(x) function 包括年月日 有效性规则:对字段的一个约束条件(范围),必须使用表达式书写(条件表达式 逻辑表达式) 条件表达式:> < = >= <= <>(不等于) 逻辑表达式:not非,不是 and且 or或 有效性文本:当数据违背有效性规则时,出现错误的提示信息 3.设置学费字段的属性,使其为必填字段 索引:有(无重复) 从无到有索引 索引的作用:通过建立排序,提高查找效率(加速排序) 4.建立姓名字段无重复的索引 主索引===主键====有(无重复) 6,数据库和表3 建立表间关系 一对一 学生和学号 一对多 班长和学生 多对多 商品和顾客 规则:首先找到相同字段,有相同字段则可以直接建立关系,如果没有相同字段,则找相同的字段属性 建立关系之前必须必须关闭与之有关联的表 建立表间关系,所属部门01,02,03,04 部门号01,02,03,04 1.向学生表中追加信息,000002,胡歌,男,24,02,1999-9-1,2000获得九江学院校草称号(数据表视图) 2.讲桌面上的美女6图片添加到胡歌的图片 3.对性别字段进行设置,使其从下拉列表中选择男,女,不详 access拓展名:.accdb word拓展名:.doc excel拓展名:.xlsx或.xls 文本文件拓展名:.txt 将access文件导入到access,从哪里(数据源)到哪里 链接导入:格式没有变化 直接导入:格式发生变化 7,数据库和表4 修改表结构(表的设计视图) 添加字段:如果没有说明在哪里添加,则在尾部添加新字段 1.将工资数据类型设置为货币 2.将工资的数据类型的显示格式设置为货币 删除字段:delete drop 编辑表内容(数据表视图) 记录:以行为单位,一个记录由若干个数据项组成 文件尾部(文件尾):end of file eof() f(x) function 函数 空白记录(新纪录) ctrl c 复制 ctrl v 粘贴 ctrl a 全选 ctrl f4关闭 ctrl 上箭头回到第一条记录的当前字段 ctrl 下箭头回到最后一条记录的当前字段 ctrl home回到第一条记录的第一个数据项 ctrl end回到最后一条记录的最后一个数据项 添加记录:只能在尾部添加 删除记录:整行删除 清空:修改和更新 null 复制数据:备份表就是复制 粘贴 通配符: 常量' ',变量用[ ] *表示任意个数的字符(文本型) ?表示任意一个字符(文本) []表示变量,取括号内之一 b[ae]ll !非,!b[ae]ll 表示不在括号内的字符 - [1-10] 表示取值范围 从哪里到哪里 # 任意一个数字 1#6 1.将性别为女替换成男 2.将姓名中小替换成晓 3.将姓李的替换成姓王 调整行高:整个表发生改变 调整列宽:选中的列发生改变 隐藏字段:不是删除 冻结字段:设置姓名字段使其不移出屏幕,固定在第一列 month([入校时间])>=1 and month([入校时间])<=10 8,数据库和表5 排序记录 升序:从小到大 ASC 默认 降序:从大到小 DESC 排序规则: 数字:按照数字的大小而定 文本型:汉字,字母,不能计算的数字 汉字:写第一个字的拼音的首字母,然后按照字母排序 字母:字母升序从A-Z排序,字母降序从Z-A排序 不能计算的数字:从左到右,先比较第一个,如果第一个大则大,如果第一个相同,则比较第二个 升序排序文本型数据:12, 2 , 33 ,45,9, 8,36 12<2<33<36<45<8<9 日期时间:#1997-10-1# < #1998-10-1# 是否型:是 true -1 < 否 false 0 空值:null ,空值最小 多字段排序:多字段排序必须相邻 年头2015-1-1 年尾2015-12-31 筛选出199几年的学生记录 1990-1-1----1999-12-31 选出7月到9月 文本型:文本型写'' 数字型:直接书写,必须使用表达式 条件表达式:> < = >= <= <>不等于 逻辑表达式:not非,不是 and且 or或 是否型:true -1 false 0 空值:null *任意个数字符 ?任意单个字符 姓李:like '李*' 包含李:like '*李*' 最后一个字是李:like '*李' 选出姓李的并且姓名是两个字:like '李?' date()===2015-11-29 组合日期函数:dateserial(年,月,日) 系统当前月:month(date())===11 month(#2008-12-31#)===12 系统当前年的一月一号:dateserial(year(date()),1,1) 下一年度的九月一号:dateserial(year(date()) 1,9,1) 本年度的二月最后一天:dateserial(year(date()),3,0) 上一年度的当前月的第一天:dateserial(year(date())-1,month(date()),1) 9,查询1 1.创建一个查询,查找学生表的姓名,性别,年龄,所建查询名为qt1 1.添加表:需要用到的表添加(有字段来自这个表) 添加字段之前必须建立联系 若没有联系,通过第三个表建立联系 2.添加字段:按照题目要求添加,按顺序添加 3.保存 4.运行:运行只能运行一次 2.创建查询,查找并显示学生表的姓名,成绩表的成绩,qt2 3.创建一个查询,查找并显示学生表的姓名,课程表的课程名,qt3 查询的类型:选择查询,参数查询,交叉表查询,操作查询,SQL查询 SQL查询(structured query language):结构化查询语言(代码) 操作查询:生成表,追加,更新,删除,必须运行 创建查询,查找并显示学生表的姓名,性别,年龄,且年龄在30岁到50岁之间 创建带条件的查询: 1.数字型:必须使用表达式 > >= < <= <> = not and or 2.文本型:使用' ', 包含计算机:like '*计算机*' 以计算机开头:like '计算机*' 以计算机结尾:like '*计算机' 3.是否型:查找并显示学生表的'姓名','性别','年龄',且是党员的学生 true-1 < false 0 4.日期型:between #1999-1-1# and #1999-12-31# >=#1999-1-1# and <=#1999-12-31# year([入校时间])=1999 #2015-10-31# 5.空值:null 6.若果字段只是作为条件,不需要显示,把显示中的勾取消
查找性别是男和女的'姓名','性别' in在里面之一 姓名是李四和张三的姓名,性别 in('李四','张三')='张三' or '李四' 系统当前日期:date() 系统当前日期和时间:now() 系统当前时间:time() year() month() day() in()两者之一 组合日期函数:dateserial(年,月,日) 上一年度的一月一号:dateserial(year(date())-1,1,1) 本年度的2月最后一天:dateserial(year(date()),3,0) 下一年度的当前月的第一天: dateserial(year(date()) 1,month(date()),1) round()四舍五入 round(123.567,2)=123.57 2表示保留的小数位数 left right mid left(123456,3)=123 3表示数的位数 right(123456,3)=456 3表示数的位数 mid(123456,2,4)=2345 2表示起始位置,4表示位数 mid(123456,2)=23456 2表示起始位置,若没有说明位数,则默认到尾部 125896 258 mid(125896,4,3)=896 len('123456')=6 长度函数 查找姓李的并且为两个字的姓名:like '李?'== left([姓名],1)='李' and len([姓名])=2 职称为教授或副教授:'教授' or '副教授'=right([职称],2)='教授'==like '*教授'===in('教授','副教授') 10,查询2 选择查询的功能:选择,计算 1.统计全班同学的总分,平均分,最高分,最低分 合计:sum() 求和过程 平均值:avg() average 最大值:max() 最小值:min() 2苹果 2高级苹果 4桔子 2香蕉 sum 计数:count() 数的过程 group by 分组 order by 排序 2.统计每个人的总分,平均分 先分组后计算 expression 表达式 express 3.统计每个学生的学号和平均分,字段显示学号,平均分,且平均分取整数 f(g(x))复合函数,嵌套函数,必须用round函数 嵌套函数使用表达式 expression 虚字段:表里面没有的字段 后加: 4.统计各职称的平均年龄,字段显示职称,平均年龄,平均年龄取整数,必须使用round函数 where 作为条件时用where 5.统计各门课程的平均分 分组统计:题目中包含每,各,该等字眼,并且要计算 6.统计每个教师的工龄 工龄:year(date())-year([工作时间]) 7.统计序号,姓名,成绩,序号为学号的后两位 当字段来自多个表时取主表的字段 ! 的 查询的设计视图用 . 的 SQL视图,代码
12,查询3 交叉表查询 1.创建一个查询,查找各政治面貌,各学历的教师人数 2.创建一个交叉表查询,行标题为政治面貌,列标题为学历,值为人数 交叉表查询的三要素:行标题,列标题,值 第一列为行标题,第一行为列标题 在交叉表查询中,行标题可以有多个,列标题和值有且只有一个 3.创建一个查询,行标题为系别,列标题为性别,值为平均年龄 4.创建一个交叉表查询,行标题为政治面貌和性别,列标题为学历,值为教师的人数 参数查询:参考的数据,条件为变量,变量用[] 1.创建参数查询,按性别查找教师的姓名 步骤:确定条件,在条件行输入 [],表示变量,然后再[]里面输入提示信息(参数信息) 2.创建参数查询,查找教师的姓名,性别,政治面貌,职称,参数信息为请输入性别,请输入政治面貌:,qt1 选择,参数,交叉表,操作,SQL 操作查询:生成表,删除,更新,追加,必须运行 生成表:into table 删除:delete 追加:insert into 更新(改变):update 生成表:会生成新表,会把原有记录删除(覆盖),将表一分为二 1.创建查询,查找所有教师信息,*表示所有记录 2.创建查询,使系别为经济的教师,生成一个新表,表名为tNew 删除查询:只解决条件问题,永久删除,不可恢复 1.创建删除查询,删除性别为男的教师(以行为单位) 更新查询:(改变),解决条件和更新到问题 1.创建查询,将编号前加2,查询名为qt2 追加查询:将表合二为一 insert into 13.4
13,查询4 SQL查询(代码) structured query language 结构化查询语言 SQL查询功能:数据定义,数据操纵,数据查询,数据控制 数据定义:建立表 create table 修改表 alter table 删除表 drop table drop:删除的是表或者字段,以列为单位 delete:删除的是记录,以行为单位 修改表:添加字段add 修改字段alter 删除字段drop 数据操纵:插入记录(追加)insert into 更新:update 删除:delete insert into 表名 values(字段1,字段2,,,,) update 表名 set 字段名=表达式 where 条件 delete from 表名 where 条件 数据查询:针对选择查询 select 字段名 from 表名 where 条件 having 分组之后条件 order by :升序ASC(默认),降序 DESC '教授' or '副教授'=in('教授','副教授')=like '*教授'=right([职称],2)='教授' 查找所有的用代码(select),查找个人的用函数 个人的总成绩:sum([成绩]) 所有同学总成绩:select sum([成绩]) from 成绩表 个人的平均成绩:avg([成绩]) 所有同学平均成绩:select avg([成绩]) from 成绩 select avg([年龄]) from 学生表=26.117
14.窗体1 窗体 form 网页制作 1.使用窗体向导创建一个窗体,数据源(recordsource)为学生表,要求纵栏式 窗体更加形象直观 代码(SQL) 窗体包括五个节区:窗体页眉,窗体页脚,页面页眉,页面页脚,主体(最主要,必不可少的,用来显示内容) 控件(工具) 属性(功能) 代码 标签:label 立即写字 组合框:combo 具有选择和输入组合功能 附带标签 文本框:text 只具有输入功能 附带标签 选项按钮:单选按钮 option 附带标签 复选框:check 附带标签 命令按钮(按钮):command cmd 做事件 代码 标题(caption):用来显示内容 外部 名称(name):控件的名称 内部 设置命令按钮的单击事件,单击时关闭 docmd.close 选项按钮和复选框功能一致 OLE对象相当于绑定对象框 矩形和直线只起修饰作用,无任何功能 2.在主体节区添加一个标签控件,标题为你好,名称为tavg,宽度为10,高度为2,左边距1.9,上边距为1.5,字体为隶书,字号为18,加粗居中对齐,背景色backcolor为白色,前景色forecolor为红色(255),单击标签时标题为'点我干嘛',双击时标题为'叫你别点我'
15,窗体2 文本框:只具有输入功能 text,附带标签 绑定型,非绑定型,计算型 计算控件就是文本框 非绑定型:1.添加一个文本框,名称为a,标题为密码,密码以*显示 文本框附带的标签可以设置标题 绑定型:2.添加一个文本框,用来绑定学生表的姓名,标题为姓名 1.把学生表添加到窗体的数据源 2.把对应的字段添加到控件的控件来源 计算型:3.添加一个文本框,计算学生表的平均年龄,使用round函数取整 选项组: 4.添加一个选项组,选项组名为a1,标题为性别,标题名为a2,在选项组内添加两个单选按钮,单选按钮名为b1,b2,标题为男,女,标题名为c1,c2 列表框:只具有选择功能 组合框:具有选择和输入功能 文本框:只具有输入功能 消息框:msgbox '提示内容',按钮 图标,'标题' 是yes 否no 确定ok 取消cancel 仅仅only 图标:!消息 vbinformation ? 询问 vbquestion X 警告,重要消息 vbcritical 按钮:是否 vbyesno 确定取消 vbokcancel 是否取消 vbyesnocancel 只有确定按钮 vbokonly 5.单击关闭时有一个消息框,提示内容为是否关闭?,按钮为是否,图标为询问,标题为标题 提示内容必不可少
16,窗体3 msgbox '提示内容',按钮 图标,'标题' 前景色 forecolor 红色代码255 可见 visible 可用 enable 不可用也叫灰色无效状态 宽度 width 相当于长 高度 height 相当于宽 宽度和高度共同决定控件的大小 下边距=上边距 高度 右边距=左边距 宽度 左边距和上边距共同决定控件的位置 form 窗体名也就是保存名 1.属性表里的数据选项卡中的可用可以使单击时没有反应 2.标签在属性表中的数据选项卡中只有智能标记 光标访问次序(tab键次序)从0开始
17,报表 报表:report r 报表可以输出数据,但是不能输入数据 1.使用向导创建报表,数据源(recordsource)为学生表,使用表格式 报表的数据源可以是表或查询,不能是报表和窗体本身 在每一页的上面显示:页面页眉 在每一页的下面显示:页面页脚 2.(1)在报表的主体节区添加三个文本框,分别绑定成绩表的学号,课程号,成绩 (2)在页面页眉添加三个标签,文字显示学号,课程号,成绩 (3)在报表的页眉添加一个标签,标题为年度成绩报表,名称为ab,报表加载时ab的标题为xxxx年度成绩报表,xxxx为系统当前年 ab.Caption = Year(Date()) & '年度成绩报表' 常量和变量之间用& 3.在报表页眉节区添加一个计算控件,计算系统当前日期,时间,日期和时间 总页数为变量,当前页也是变量 [pages] [page] 4.页码,必须添加在页的位置 在报表的页面页脚添加一个文本框,显示页码的格式:1/3,2/3,3/3 =[page]&'/'&[pages] 第n页,共m页:='第'&[page]&'页,共'&[pages]&'页' 第n页:='第'&[page]&'页' 5.以学号分组,并按成绩降序排序 报表的7个节区:报表页眉,报表页脚,页面页眉,页面页脚,主体,组页眉,组页脚 在组页眉添加5个计算控件,计算每个人的总分,平均分,最高分,最低分,科目数 6.以姓氏分组 =left([姓名],1) iif([成绩]>=60,'及格','不及格')
18,宏 宏 macro m autoexec 自动运行宏 表 table t auto 自动,初始化 查询 query q exe 可运行文件 窗体 form f .exe 病毒的拓展名 报表 report r 宏是一个或多个操作的集合,每个操作必须有参数 forms!窗体名!控件名 reports!报表名!控件名 1.创建一个名为form1的窗体,在窗体中添加一个组合框,名为tss,标题为性别,组合框控件绑定两个值,男,女 2.创建一个查询,查找学生的姓名和性别,性别为参数,要求性别引用窗体form1上的tss的值 3.单击打开时运行宏m1 单击打开时运行宏m1,必须使用代码写 docmd.runmacro 'm1' 打开窗体时触发的事件 open--load--resize--activate--current--exit退出,关闭 olrace 关闭窗体时的触发事件 unload(卸载)--deactivate(停用)---close(关闭)
|
|
来自: 爱幻想的笨熊 > 《Access应用》