使用access使用技巧的几点技巧

ACCESS中使用SQL语句应注意的地方、与sql server的区别及几点技巧(整理中) - 卓如 - 博客园
以下SQL语句在ACCESS XP的查询中测试通过 建表: Create Table Tab1 ( ID Counter, Name string, Age integer, [Date] DateTime); 技巧: 自增字段用 Counter 声明. 字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行.
建立索引: 下面的语句在Tab1的Date列上建立可重复索引 Create Index iDate ON Tab1 ([Date]); 完成后ACCESS中字段Date索引属性显示为 - 有(有重复). 下面的语句在Tab1的Name列上建立不可重复索引 Create Unique Index iName ON Tab1 (Name); 完成后ACCESS中字段Name索引属性显示为 - 有(无重复). 下面的语句删除刚才建立的两个索引 Drop Index iDate ON Tab1; Drop Index iName ON Tab1;
ACCESS与SQLSERVER中的UPDATE语句对比: SQLSERVER中更新多表的UPDATE语句: UPDATE Tab1 SET a.Name = b.Name FROM Tab1 a,Tab2 b WHERE a.ID = b.ID; 同样功能的SQL语句在ACCESS中应该是 UPDATE Tab1 a,Tab2 b SET a.Name = b.Name WHERE a.ID = b.ID; 即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后. 上例中如果Tab2可以不是一个表,而是一个查询,例: UPDATE Tab1 a,(Select ID,Name From Tab2) b SET a.Name = b.Name WHERE a.ID = b.ID;
访问多个不同的ACCESS数据库-在SQL中使用In子句: Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID; 上面的SQL语句查询出当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录. 缺点-外部数据库不能带密码.
在ACCESS中访问其它ODBC数据源 下例在ACCESS中查询SQLSERVER中的数据 SELECT * FROM Tab1 IN [ODBC] [ODBC;Driver=SQL SUID=PWD=;Server=127.0.0.1;DataBase=D] 外部数据源连接属性的完整参数是: [ODBC;DRIVER=SERVER=DATABASE=UID=PWD=] 其中的DRIVER=driver可以在注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ 中找到
ACCESS支持子查询
ACCESS支持外连接,但不包括完整外部联接,如支持 LEFT JOIN 或 RIGHT JOIN 但不支持 FULL OUTER JOIN 或 FULL JOIN
ACCESS中的日期查询 注意:ACCESS中的日期时间分隔符是#而不是引号 Select * From Tab1 Where [Date]&##; 在DELPHI中我这样用 SQL.Add(Format( 'Select * From Tab1 Where [Date]&#%s#;', [DateToStr(Date)]));
ACCESS中的字符串可以用双引号分隔,但SQLSERVER不认,所以为了迁移方便和兼容, 建议用单引号作为字符串分隔符. 常在一些bbs上面看见有人在问Access转换为 MS SQL 有什么要注意的地方,或是编写存储过程,现在小弟在此写一些要注意的或者常用的语法给大家参考(部分为asp常用的函数)-------------------Access : Now()MS SQL : GetDate()-------------------Access : midMS SQL : SubString( expression , start , length )expression-要搜索的目标,但不能使用聚合函数start-指定字符串的开始位置length-指定获取字符串的长度-------------------Asp : InstrMS SQL:CharIndex( expression1 , expression2 )参数的位置和 Asp 的 Instr刚好相反-------------------Asp : DimMS SQL : Declare @variable DataType举例:Declare @VarName VarChar(50) 声明变量@VarName为VarChar类型,长度为50-------------------赋值:Declare @VarName VarChar(10)Set @VarName = 'This is Content'-------------------数据类型转换函数,如 Asp 的 Cstr,ClngMS SQL : Cast( expression As DataType)expression 为目标对象DataType 为要转换成的数据类型举例:Declare @VarName VarChar(20) -- 声明一个 @VarName 变量为VarChar类型,长度20Set @VarName = '2' -- 给 @VarName 赋值Cast( @VarName As Int) -- 转换成 Int 类型数据-------------------字符串连接符号: +-------------------循环:While Boolean_expressionBegin-- 要执行的语句EndBoolean_expression 为布尔表达式,只要指定的条件为真,就循环执行语句-------------------if 的用法if (Boolean_expression)Begin-- 执行 True 分支....Endif....else.... 的用法if (Boolean_expression)Begin-- 执行 True 分支....EndElseBegin-- 执行 False 分支End-------------------内容提要/Access2007宝典
是面向个人用户及小型公司的数据库开发工具,Access 2007是该工具的最新版本。这一版本不仅提供了很多全新的功能,最重要的是提供了全新的界面,因此与过去所有的Access版本都不同。本书分为6个部分,包括Access的组成部分、Microsoft Access编程、更高级的Access技术、专业数据库开发、作为企业平台的Access以及附录,从而由浅入深地介绍了Access 2007的所有功能。
本书由经验丰富的Access专业人士编写,并且在随书光盘中提供了几乎所有章节都用到的示例数据库,让读者可以边操作边学习。全书图文并茂,语言简练,是Access初学者、中高级用户和数据库开发人员的必备书籍。
编辑推荐/Access2007宝典
构建自定义的数据库解决方案,探索全新的UI和,存储、查看、分析和数据。
用户可使用这本全面中的内容来指导自己驾驭强大的Access 2007。初学者可以从中学习全面的数据库基础知识和术语。有经验的用户可以直接学习Access 2007的增强功能,如全新的用户界面,以及对XML和Web服务更广泛的应用。本书中的6个部分分别按逻辑顺序全面介绍了各种主要的内容,所以可满足您的各种需要。本书既可作为参考手册,又可作为教程,是那些需要充分利用Access 2007全新特性的开发人员的强大工具。·使用出色的关系型数据库技巧构建Access表;·使用5步骤设计方法构造高效的数据库;·设计高效的数据输入和数据显示窗体;·利用改进的Access报表设计器;·使用VBA;·构建并自定义Access 2007功能区;·与SharePoitlt无缝地交换Access数据;·采用各种高级技巧,如Windows API和面向对象编程;·在Access应用程序中提高安全性并使用数据复制。光盘内容:·按照本书各章中的示例操作时要使用光盘上提供的材料。在光盘上会找到每章使用的Microsoft Access数据库文件和其他操作文件,包括:·本书中使用的所有示例和。包括数据库文件、像、各种格式的数据文件和本书示例中使用的图标文件;·完整的示例文件,包括查询、报表、对象和模块。可以用作参考。
作者简介/Access2007宝典
Michael R.Groh是一位著名的数据库系统方面作者、作家和咨询师。他的PC Productivity Solutions公司为美国企业提供信息管理应用程序。在过去的25年中,Mike在工作过程中使用过各种、和计算机硬件。
目录/Access2007宝典
●第1部分Access的组成部分
·第1章数据库开发简介·第2章创建Access表·第3章出色的数据库设计·第4章使用查询选择数据·第5章在Access中使用运算符和表达式·第6章使用“数据表视图”·第7章创建基本的Access窗体·第8章在Access窗体上处理数据·第9章使用Access报表呈现数据●第2部分Microsoft Access编程·第10章VBA编程基础·第11章掌握VBA数据类型与过程·第12章了解Access事件模型·第13章在查询和VBA代码中使用表达式·第14章使用VBA代码访问数据·第15章使用VBA调试工具●第3部分更高级的Access技术·第16章使用外部数据·第17章导入和导出数据·第18章高级Access查询技术·第19章高级Access窗体技术·第20章高级Access报表技术·第21章构建多用户应用程序·第22章将Access和其他应用程序集成·第23章将Access和SharePoint集成·第24章使用ActiveX控件·第25章处理错误和异常●第4部分专业数据库开发·第26章优化Access应用程序·第27章利用VBA进行高级数据访问·第28章出色的Access应用程序·第29章保证Access应用程序的安全性·第30章使用Windows API·第31章使用Access复制功能·第32章使用VBA的面向对象编程·第33章借助库重用VBA代码·第34章自定义Access功能区·第35章发布Access应用程序·第36章使用Access宏●第5部分作为企业平台的Access·第37章在Access 2007中使用XML·第38章作为数据源的SharePoint·第39章客户端/服务器概念·第40章作为Access伙伴的SQL Server·第41章将Access数据库升迁到SQL Server●第6部分附录·附录AAccess 2007规范·附录B光盘上的内容·附录CAccess 2007中的新增功能·……
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:8次
参与编辑人数:7位
最近更新时间: 09:22:34
贡献光荣榜
扫码下载APP您的位置:
精品软件课程
Word是由Microsoft公司出版的文字...
Excel是office的重要组成部分。多特...
PPT(PowerPoint)是Office...
Excel是office的重要组成部分。最新...
Word是由Microsoft公司出版的文字...
小游戏推荐
出处:2345软件教程
人气:22994
您可能感兴趣的话题:
核心提示:ACDSee 让相片整理工作真正变得轻松快捷,这样您就可以尽情欣赏与分享所拍摄的精美相片。
不要浪费数据类型的效果当你要存储数字数据时,你也许会想要指定一个数字的数据类型。在你这么做之前,请先考虑一下数据的用途。例如,你不会将街区号码或是邮政编码的数值用在数学等式中。这样的话,请将数据存储为文本。你会节约一些内存,但更重要的是,数据类型是按照数据的用途的。如果你需要使用一个文本值作为真数值,则可在表格中表示文本域的域中使用Val()函数“=Val(field)”(此域存储数值或文字值)。使用最适当的域的大小由于如今的系统都很强大,要指定最合适的域的大小则不再是像过去那样紧迫的任务。然而,为了能够更好地实施工作,开发者仍然会限定域的大小。你首先要做的步骤就是使数据生效。例如,你将州名所写存储在一个域大小设置为2的文本域中。如果用户输入的是ARK而不是AK,Access将会拒绝接受这条输入。当然,域大小的属性仅会拒绝过大了的条目,它无法探明输入或是其它的错误。这个域仍然会接受其它有误的条目,例如“A”或“K6”。这也能应用在数字域上,只是没有那么明确的范围。例如,一个字节域能够接受的值可以从0到255,而长整数域可接受的值的范围则从-2,147,483,648到2,147,483,647。为每个域选择适当的数据类型和域大小的属性。始终选择最小的数据类型以及域大小,就有可能地在这个域中容纳最大的值。使用分析工具Access有两个工具能够帮助你精炼你的设计。第一个就是表格分析器向导,它能够检查一个表格并像你推荐在哪处做出改变比较合适。第二,就是性能分析器,它能够检查你整个数据库,并对改进设计提出建议。通常,你都会采用向导所提出的建议。无论你要运行哪个向导,都可以在“工具”菜单中选择分析器之后再选择合适的项目。不要忘记表格的属性就像域一样,表格也有能够定义其用途的属性。大多数都能够自我解析,而默认的属性也通常都足够合适。要访问这些属性,只需要在设计视图下打开表格,接着在“视图”菜单中选择“属性”。以下是一些你应该知道的东西:排序依据:指定一个排列的顺序,当你在打开表格的时候Access能够应用它。只需要根据你想要分类排序的记录输入域的名称。如果你没有使用这项设置,Access则会根据主键来进行排序。如果没有主键,Access则会按照数据输入的顺序来显示。它与表层并不会有太多的关系,因为用户不会查看表格。然而,就像很多域的属性那样,捆绑的对象会继承属性。子数据表名称:它决定了子数据表是否会显示相关的记录。许多人都觉得子数据表很恼人,如果你也这么认为,则可以将这个属性设置为[None]来禁用它。注意其中的界限范围尽管你可能永远也不会接触到表格界限范围的设置,但你还是必须知道它们是存在的:表格名至多可以包含64个字符。域名称之多可以包含64个字符。每个表格至多可以包含255个域。表格大小的限制范围在2GB减去系统对象所需要的空间大小。文本域之多可存储255个字符。当你通过用户界面输入数据时,备忘域能够存储至多65535个字符。如果从程序上来说,输入数据,它能够接受至多1GB大小。OLE域能够支持至多1GB大小。每个表格能够具有至多32个索引。每个索引可以包含至多10个域。一个有效规则表达能够存储至多2045个字符;有效文本属性能够具备之多255个字符。描述属性能够存储至多255个字符。每项记录能够存储至多4000个字符(2003版本),如果是2002版本则是2000个字符。
相关教程推荐
相关软件推荐——有两种东西,我们愈是时常反复地思索,他们就愈是给人的心灵灌注了时时翻新、有增无减的赞叹和敬畏,这就是我心中的道德法则和头顶的灿烂星空。...
ACCESS中使用SQL语句应注意的地方及几点技巧
以下SQL语句在ACCESS XP的查询中测试通过  
建表:    Create Table Tab1 (    ID Counter,    Name string,    Age integer,    [Date] DateTime);   技巧:    自增字段用 Counter 声明.    字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行.   建立索引:    下面的语句在Tab1的Date列上建立可重复索引    Create Index iDate ON Tab1 ([Date]);    完成后ACCESS中字段Date索引属性显示为 - 有(有重复).    下面的语句在Tab1的Name列上建立不可重复索引    Create Unique Index iName ON Tab1 (Name);    完成后ACCESS中字段Name索引属性显示为 - 有(无重复).    下面的语句删除刚才建立的两个索引    Drop Index iDate ON Tab1;    Drop Index iName ON Tab1;
 ACCESS与SQLSERVER中的UPDATE语句对比:    SQLSERVER中更新多表的UPDATE语句:    UPDATE Tab1    SET a.Name = b.Name    FROM Tab1 a,Tab2 b    WHERE a.ID = b.ID;    同样功能的SQL语句在ACCESS中应该是    UPDATE Tab1 a,Tab2 b    SET a.Name = b.Name    WHERE a.ID = b.ID;   即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.   上例中如果Tab2可以不是一个表,而是一个查询,例:    UPDATE Tab1 a,(Select ID,Name From Tab2) b    SET a.Name = b.Name    WHERE a.ID = b.ID;      访问多个不同的ACCESS数据库-在SQL中使用In子句:    Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID;    上面的SQL语句查询出当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录.   缺点-外部数据库不能带密码.      在ACCESS中访问其它ODBC数据源   下例在ACCESS中查询SQLSERVER中的数据    SELECT * FROM Tab1 IN [ODBC]    [ODBC;Driver=SQL SUID=PWD=;Server=127.0.0.1;DataBase=D]   外部数据源连接属性的完整参数是:    [ODBC;DRIVER=SERVER=DATABASE=UID=PWD=]   其中的DRIVER=driver可以在注册表中的    HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/   中找到     ACCESS支持子查询     ACCESS支持外连接,但不包括完整外部联接,如支持    LEFT JOIN 或 RIGHT JOIN   但不支持   FULL OUTER JOIN 或 FULL JOIN     ACCESS中的日期查询   注意:ACCESS中的日期时间分隔符是#而不是引号    Select * From Tab1 Where [Date]&##;   在DELPHI中我这样用    SQL.Add(Format(    'Select * From Tab1 Where [Date]&#%s#;',    [DateToStr(Date)]));     ACCESS中的字符串可以用双引号分隔,但SQLSERVER不认,所以为了迁移方便和兼容,   建议用单引号作为字符串分隔符.
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!有智慧的人,有智慧的故事,有智慧的人生
使用Access的几点技巧
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改大即可,可以改成十进制的
3.access采用sql语句与sql的区别
Access中提供查询对象,在设计时可以采用设计视图和SQL视图,非常方便,SQL视图中的SQL语句可以在SQL SERVER中使用,但是否完全可用呢?答案是否定的,表中总结了 Microsoft Access 和 Microsoft SQL Servers 的 SQL 语法的重要区别。
SQL 语法元素
Microsoft Access
Microsoft SQL Server
限制不超过 64 个字符。
允许使用关键字和特殊字符。
可以用任何字符开头。
SQL Server 6.5:
限制不超过 30 个字符。
不允许使用关键字和特殊字符。
必须用字母字符开头。
SQL Server 7.0 的标识符与 Access 完全兼容。
允许多个输出字段具有相同名称。
在视图中不支持多个相同输出字段名。
日期分隔符号
英镑符(#)
Boolean 常量
True、False;On、Off;Yes、No。
整数:1(真)、0(假)
字符串连接
星号(*)与零个或更多字符匹配。
问号(?)与单个字符匹配。
叹号(!)意味着不在列表中。
英镑符(#)意味着单个数字。
百分号(%)与零个或更多字符匹配。
下划线(_)与单个字符匹配。
上插入符(^)意味着不在列表中。
没有与英镑符(#)对应的字符。
如果有一个 ORDER BY 子句,自动包含层次。
SQL Server 6.5 不支持。
SQL Server 7.0 需要一个明确的 WITH TIES 子句。
CREATE INDEX
允许创建升序和降序索引。
允许声明主键,没有 Null 值,并且忽略 Null 值。
DROP INDEX
Drop Index &index name& ON &table name&
Drop Index &table name&, &index name&
DISTINCTROW
支持(允许选择单个记录)。
OWNERACCESS
支持(在执行时控制许可权)。
Table in UNION
支持(允许使用下列语法指定表:
TABLE &tablename&
ORDER BY in Unions
支持。允许通过联合查询中的子句实现多种排序。
支持。允许通过语句末尾的子句实现一种排序。
支持。用于交叉表查询。
PARAMETERS
支持(在 SQL 中记录)。
以northwind数据库为例,若要得到相同查询结果,SQL语句作相应变化。主要是通配符的变化
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'
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 搜索引擎的使用技巧 的文章

 

随机推荐