视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用Access的几点技巧
2020-11-09 07:20:44 责编:小采
文档


1.ACCESS中使用select top 出现的问题 如果在查询TOP语句的后面使用Order by, 而且Order by字段中有重复值的话,那么这个TOP很可能会失效 , 会返回所有记录 比如: Select top 5 from News order by CreateDate 如果CreateDate中有重复值,那么很有可能会

1.ACCESS中使用select top 出现的问题

如果在查询TOP语句的后面使用Order by,而且Order by字段中有重复值的话,那么这个TOP很可能会失效
会返回所有记录
比如:


Select top 5 from News order by CreateDate
如果CreateDate中有重复值,那么很有可能会显示出所有的记录来,此TOP功能会失效的
但如果CreateDate中无重复值,那么TOP功能还是有效的

因此,在ACCESS中使用TOP功能要注意一下order by的字段是否会有重复值,如果象CreateDate是"年-月-日 时:分:秒"的,那基本上问题不大的。
但为了保险起见,我们也可以采用“加入主键”的方式,否则必须保证在TOP和ORDER BY不能在同一层查询中同时出现。

2.文件共享锁定数溢出

Access数据库,同时操作大量记录(9500条以上)时报错。
错误提示:
Microsoft JET Database Engine 错误 '80040e21'
文件共享锁定数溢出。(Error 3052)
解决办法:
修改注册表。
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Jet 4.0]
"MaxLocksPerFile"=dword:05f5e0ff
将MaxLocksPerFile默认的十进制值9500改大即可,可以改成十进制的99999999

3.access采用sql语句与sql的区别

Access中提供查询对象,在设计时可以采用设计视图和SQL视图,非常方便,SQL视图中的SQL语句可以在SQL SERVER中使用,但是否完全可用呢?答案是否定的,表中总结了 Microsoft Access 和 Microsoft SQL Servers 的 SQL 语法的重要区别。

表1

SQL 语法元素

Microsoft
Access

Microsoft SQL
Server

标识符

不超过 个字符。

允许使用关键字和特殊字符。

可以用任何字符开头。

SQL Server 6.5:

  • 不超过 30 个字符。
  • 不允许使用关键字和特殊字符。
  • 必须用字母字符开头。
  • SQL Server 7.0 的标识符与 Access 完全兼容。

    输出字段

    允许多个输出字段具有相同名称。

    在视图中不支持多个相同输出字段名。

    日期分隔符号

    英镑符(#)

    撇号(')

    Boolean 常量

    True、False;On、Off;Yes、No。

    整数:1(真)、0(假)

    字符串连接

    和号(&)

    加号(+)

    通配符

    星号(*)与零个或更多字符匹配。

    问号(?)与单个字符匹配。

    叹号(!)意味着不在列表中。

    英镑符(#)意味着单个数字。

    百分号(%)与零个或更多字符匹配。

    下划线(_)与单个字符匹配。

    上插入符(^)意味着不在列表中。

    没有与英镑符(#)对应的字符。

    TOP

    如果有一个 ORDER BY 子句,自动包含层次。

    SQL Server 6.5 不支持。

    SQL Server 7.0 需要一个明确的 WITH TIES 子句。

    CREATE INDEX

    允许创建升序和降序索引。

    允许声明主键,没有 Null 值,并且忽略 Null 值。

    DROP INDEX

    语法是:

    Drop Index ON

    语法是:

    Drop Index

    ,

    DISTINCTROW

    支持(允许选择单个记录)。

    不支持。

    OWNERACCESS

    支持(在执行时控制许可权)。

    不支持。

    Table in UNION

    支持(允许使用下列语法指定表:

    TABLE

    不支持。

    ORDER BY in Unions

    支持。允许通过联合查询中的子句实现多种排序。

    支持。允许通过语句末尾的子句实现一种排序。

    TRANSFORM

    支持。用于交叉表查询。

    不支持。

    PARAMETERS

    支持(在 SQL 中记录)。

    不支持。

    以northwind数据库为例,若要得到相同查询结果,SQL语句作相应变化。主要是通配符的变化

    Access:

    SELECT * FROM Products where productname like 'c*';

    SELECT * FROM Products where productname like 'c?ang';

    SQL Server:

    SELECT * FROM Products WHERE productname LIKE 'c%'

    SELECT * FROM Products WHERE productname LIKE 'c_ang'

    下载本文
    显示全文