Access共享数据库 (MDB)
- 格式:doc
- 大小:43.50 KB
- 文档页数:7
数据库和表—笔试要点背诵手册(第一版)注:钟老师课堂 通过对历年考题的分析,参看众多当前已有的资料,倾力编写的《笔试要点背诵手册》,致力与为同学们提取精华,学习缩短时间。
同学们在背诵要点的过程中,及时利用网站提供的“习题库”中的功能抽题进行练习,更能巩固所学,把握要点。
注意,文档中红色字部分为必须背诵部分!由于本手册倾注了钟老师大量心血,请各位学员下载学习过程中,不要大量传播,对钟老师造成巨大影响。
因为钟老师目前收取的资费已经少得可怜,要想提供更好的学习平台,还需得到大家的帮助与支持。
数据库与表部分,笔试中所占比例较大,分值一般在8~12分左右。
主要考擦字段属性相关内容,如数据类型、掩码、有效性规则、有效性文本、空值含义、主键含义及影响等;还可能考察表筛选类型、规则、查找中通配符含义。
一、ACCESS 简介:Access 数据库是所有相关对象的集合,包括表、查询、窗体、报表、宏、模块、Web 页等。
每一个对象都是数据库的一个组成部分,其中,表是数据库的基础,它记录数据库中的全部数据内容。
而其他对象只是Access 提供的用于对数据库进行维护的工具而已。
正因为如此,设计一个数据库的关键,就集中在建立数据库中的基本表上。
(1)ACCESS 的主要特点(了解)1、具有方便使用的强大功能。
2、能够利用各种图例快速获得数据。
3、利用报表工具快速生成美观的数据报表。
4、采用OLE 技术,能方便的创建和编辑多媒体数据库。
5、支持ODBC 标准的SQL 数据库的数据。
6、设计过程自动化。
7、具有较好的集成开放功能。
8、提供了断点设置、单步执行等调试功能。
9、与Internet/Intranet 集成。
知识要点:1、ACCESS 数据库为关系数据库。
2、ACCESS 数据库适合于中小型数据库开发。
3、ACCESS 数据库文件的扩展名是 mdbww w .z zh st u di o.c n(2)ACCESS 数据库包含7个数据库对象:表、查询、窗体、报表、页、宏、模块。
信息处理技术员上午基础知识考试选择题专项强化真题试卷24(题后含答案及解析)题型有:1.1.在使用PowerPoint制作幻灯片时,选中一个已存在的图片对象,(58)不能完成复制此对象的目的。
A.在按下Ctrl键的同时用鼠标拖动此图片B.单击鼠标右键执行“复制”命令,再在目标位置单击右键执行“粘贴”命令C.执行“编辑”菜单中的“复制”命令,再在目标位置执行“编辑”菜单中的“粘贴”命令D.按下快捷键组合Ctrl+X,再按Ctrl+V正确答案:D解析:在PowerPoint中,选中一个已存在的图片对象后,对图片对象进行复制的方法有如下几种:①在按下Ctrl键的同时用鼠标拖动此图片。
②单击鼠标右键执行“复制”命令,再在目标位置单击右键执行“粘贴”命令。
③执行“编辑”菜单中的“复制”命令,再在目标位置执行“编辑”菜单中的“粘贴”命令。
④按下快捷键组合“Ctrl+C”,再按“Ctrl+V”。
而快捷键组合Ctrl+X的功能是“剪切”,将会使选中的对象消失,不能达到复制此图片对象的目的。
2.张、王、李三个平等的评委独立对三部电影甲、乙、丙进行了评分(三人的满分标准不同),结果如下表:按合理的平均得分计算,第一、二、三名电影应分别授予(69)。
A.丙、甲、乙B.甲、丙、乙C.乙、丙、甲D.乙、甲、丙正确答案:B解析:由于三个评委评分时的满分标准不同,所以不能直接对各人的评分计算平均值,否则,满分标准大的人占优,违反平等原则。
应先对评分标准进行归一处理。
例如,按满分1为标准,对原评分进行统一处理,得到下表:按平均分排序就是按总分排序。
因此,第一、二、三名应分别授予甲、丙、乙。
3.下列叙述错误的是(1)。
A.计算机要经常使用,不要长期闲置不用B.为了延长计算机的寿命,应避免频繁开关计算机C.在计算机附近应避免磁场干扰D.计算机使用几小时后,应关机休息一会儿再用正确答案:D解析:本题考查的是计算机设备的安全使用和维护常识。
C#操作ACCESS数据库(创建,压缩,备份,恢复)摘⾃⽤C#压缩和修复Access数据库(这部分是劳动⼈民翻译的)介绍下⾯这段C# 代码可以⽤来压缩和修复Access数据库,不管它是⼀个简单的".mdb"ACCESS数据库还是⼀个".mdw"⽹络共享数据库,这个过程和你在⽤MS Access应⽤程序中使⽤的"⼯具-数据库实⽤⼯具-压缩和修复"时执⾏的操作完全⼀样.实例代码使⽤了"迟绑定"(运⾏中在内存中建⽴COM对象),这样就不需要在⼯程中加⼊COM引⽤了,也不需要在PC上安装MS Access应⽤程序.只需要⼀个Jet引擎(Jet引擎包含在MDAC安装包中,在Windows NT4以后的版本中,系统已经⾃带了这个引擎).C#操作ACCESS数据库的背景不知你是否也厌烦了在⼯程中加⼊复杂的COM库引⽤,但我相信这个纯.NET代码将省去额外的交互操作, RCWs和COM引⽤.基本上,由于系统中安装的Microsoft类库的不同(例如:MS Office Object Library 9,10,11等等),我们也不知道⽤户PC中安装的Office版本,所以我们要通过ProgID来访问COM对象,⽽不能⽤CLSID.例如,当调⽤"Excel.Application",时,得到的是Excel,⽽不管系统中安装MS Office的版本,当在代码中加⼊"MS Excel 10 Object library"引⽤时,其实只是给应⽤程序加⼊了⼀个⾮常受限制的功能.所以我们使⽤System.Reflection和迟绑定.1. 实例代码只需调⽤CompactAccessDB函数即可压缩和修复⽬标数据库.2. 参数:connectionString – ⽤来连接到Access数据库.Mdwfilename –要压缩的MDB⽂件的全名(路径+⽂件名).由于Jet引擎的限制,执⾏此⽅法压缩Access数据库会把结果⽣成为⼀个新⽂件,所以我们要还需要把这个新的Access⽂件拷贝到⽬的位置覆盖原来未压缩⽂件.当调⽤此⽅法时请确认被压缩数据库⽆打开的连接.C#操作ACCESS数据库代码如下:/// MBD compact method © 2004 Alexander Youmashev/// !!IMPORTANT!!/// !make sure there's no open connections/// to your db before calling this method!/// !!IMPORTANT!!//////connection string to your db///FULL name/// of an MDB file you want to compress.Public static void CompactAccessDB(string connectionString, string mdwfilename){object[] oParams;//create an inctance of a Jet Replication Objectobject objJRO =Activator.CreateInstance(Type.GetTypeFromProgID(/"JRO.JetEngine/"));//filling Parameters array//cnahge /"Jet OLEDB:Engine Type=5/" to an appropriate value// or leave it as is if you db is JET4X format (access 2000,2002)//(yes, jetengine5 is for JET4X, no misprint here)oParams = new object[] {connectionString,/"Provider=Microsoft.Jet.OLEDB.4.0;Data/" +/" Source=C:tempdb.mdb;Jet OLEDB:Engine Type=5/"};//invoke a CompactDatabase method of a JRO object//pass Parameters arrayobjJRO.GetType().InvokeMember(/"CompactDatabase/",System.Reflection.BindingFlags.InvokeMethod,null,objJRO,oParams);//database is compacted now//to a new file C:tempdb.mdw//let's copy it over an old one and delete itSystem.IO.File.Delete(mdwfilename);System.IO.File.Move(/"C:tempdb.mdb/", mdwfilename);//clean up (just in case)System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);objJRO=null;}教你⼀种更绝的:如何在没有Microsoft Access⽤.NET操作ACCESS数据库?(创建,压缩,备份,恢复组件) (这部分可不是翻译的)⼿头没有Microsoft Access,C#如何操作ACCESS数据库?写⼀个⼩型程序,⼿头没有Microsoft Access,如何建⽴数据库,⼀切依然简单.⾸先引⽤C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间;接着引⽤C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间注意:如,导⼊dll不成功,⼿动把com组件导⼊为 .net组件,在⽤⼯具导⼊using System;using System.IO;using ADOX; //该命名空间包含创建ACCESS的类(⽅法)--解决⽅案 ==> 引⽤ ==> 添加引⽤ ==> 游览找到.dllusing JRO; //该命名空间包含压缩ACCESS的类(⽅法)public class Access{///根据指定的⽂件名称创建ACCESS数据库///mdbPath:要创件的ACCESS绝对路径public void Create( string mdbPath ){if( File.Exists(mdbPath) ) //检查数据库是否已存在{throw new Exception(/"⽬标数据库已存在,⽆法创建/");}// 可以加上密码,这样创建后的数据库必须输⼊密码后才能打开mdbPath = /"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/" + mdbPath;// 创建⼀个CatalogClass对象的实例,ADOX.CatalogClass cat = new ADOX.CatalogClass();// 使⽤CatalogClass对象的Create⽅法创建ACCESS数据库cat.Create(mdbPath);}///压缩修复ACCESS数据库,mdbPath为数据库绝对路径public void Compact( string mdbPath ){if( !File.Exists(mdbPath) ) //检查数据库是否已存在{throw new Exception(/"⽬标数据库不存在,⽆法压缩/");}//声明临时数据库的名称string temp = DateTime.Now.Year.ToString();temp += DateTime.Now.Month.ToString();temp += DateTime.Now.Day.ToString();temp += DateTime.Now.Hour.ToString();temp += DateTime.Now.Minute.ToString();temp += DateTime.Now.Second.ToString() + /".bak/";temp = mdbPath.Substring(0, stIndexOf(/"/")+1) + temp;//定义临时数据库的连接字符串temp2 = /"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/" + temp;//定义⽬标数据库的连接字符串mdbPath2 = /"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/" + mdbPath;//创建⼀个JetEngineClass对象的实例JRO.JetEngineClass jt = new JRO.JetEngineClass();//使⽤JetEngineClass对象的CompactDatabase⽅法压缩修复数据库pactDatabase( mdbPath2, temp2 );//拷贝临时数据库到⽬标数据库(覆盖)File.Copy( temp, mdbPath, true );//最后删除临时数据库File.Delete( temp );}/// 备份数据库,mdb1,源数据库绝对路径; mdb2: ⽬标数据库绝对路径public void Backup( string mdb1, string mdb2 ){if( !File.Exists(mdb1) ){throw new Exception(/"源数据库不存在/");}try{File.Copy( mdb1, mdb2, true );}catch( IOException ixp ){throw new Exception(ixp.ToString());}}///恢复数据库,mdb1为备份数据库绝对路径,mdb2为当前数据库绝对路径 public void Recover( string mdb1, string mdb2 ){if( !File.Exists(mdb1) ){throw new Exception(/"备份数据库不存在/");}try{File.Copy( mdb1, mdb2, true );}catch( IOException ixp ){throw new Exception(ixp.ToString());}}}。
ACCESS数据库局域网内实现多机数据共享的方法这里介绍一下一种简单的实现方法:1、首先把程序折分,分成一个前台程序,一个后台数据库。
利用ACCESS的数据库拆分向导可以很轻松的做到把数据库分为前台与后台两个部分,前台保留除表之外的所有对象,包括:查询、窗体、报表、宏或代码,并且自动链接了后台数据库的表;而后台只保留了表对象。
(1)打开数据库-工具-数据库实用工具-折分数据库(2)在弹出“数据库拆分器”后单击“拆分数据库”按钮,弹现“创建后端数据库”对话框。
(3)拆分后的前台保留原数据库名,而后台数据库名通常会在原数据库名后加_be,你可以指定后台保存在一个特定的文件夹内。
譬如说:我原来有一个数据库:C:\storage\storage.mdb拆分后,前台程序库仍为:C:\storage\storage.mdb后台数据库可以保存为:C:\storage\storage_be.mdb2、共享后台数据库所在的文件夹。
(1)打开资源管理器,选中文件夹,右键单击,选择“共享与安全”。
(2)选中“在网络上共享这个文件夹”。
(3)如果你想让局域网内其他机上的可以更新你的数据,就在“允许网络用户更改我的文件”上勾中。
以上是以Windows XP为例,其他系统会有所不同。
3、映射网络驱动器。
(1)在“网络邻居”上右键单击,或在“资源管理器”中选择工具菜单,选择“映射网络驱动器”。
(2)指定一个驱动器(盘符),譬如:M。
这个M盘为随意的,你可以指定任意其他的盘符,但要在局域网内所有要同享你的数据库的机上映射统一的盘符至你的后台数据库所在的共享文件夹。
(3)指定此盘符映射的文件夹,也就是你后台数据库所在的那个共享文件夹。
可以单击浏览按钮选择,也可以直接输入。
(4)选中“登录时重新连接”有些人不明白为什么要映射驱动器,这主要是考虑以后程序库分发的方便,也就是说,如局域网内每台机都把你的后台数据库所在的共享文件夹映射为统一的驱动器后,你的程序库在你的机上设置好之后,就可以直接复制到每台机上,不用再做重新的链接,立刻就可以执行了。
Access数据库简介⼀、Access数据库的简介1.microsoft office access是由微软发布的关联式数据库管理系统。
它结合了 microsoft jet database engine 和图形⽤户界⾯两项特点,是⼀种关系数据库⼯具。
它在很多地⽅得到⼴泛使⽤,例如⼩型企业,⼤公司的部门,和喜爱编程的开发⼈员专门利⽤它来制作处理数据的桌⾯系统。
它也常被⽤来开发简单的web应⽤程序.但是它也有优点和缺点,如下:优点:(1)存储⽅式单⼀access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库⽂件种,便于⽤户的操作和管理。
(2)⾯向对象access是⼀个⾯向对象的开发⼯具。
它将⼀个应⽤系统当作是由⼀系列对象组成的,通过对象的⽅法、属性完成数据库的操作和管理,极⼤地简化了开发⼯作。
同时,这种基于⾯向对象的开发⽅式,使得开发应⽤程序更为简便。
(3)界⾯友好、易操作(4) access是⼀个可视化⼯具,⽤户想要⽣成对象并应⽤,只要使⽤⿏标进⾏拖放即可,⾮常直观⽅便。
系统还提供了表⽣成器、查询⽣成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等⼯具,使得操作简便,容易使⽤和掌握。
(5)access可以在⼀个数据表中嵌⼊位图、声⾳、excel表格、word⽂档,还可以建⽴动态的数据库报表和窗体等。
access还可以将程序应⽤于⽹络,并与⽹络上的动态数据相联接,轻松⽣成⽹页。
缺点:access是⼩型数据库,既然是⼩型就有它根本的局限性:access数据库不⽀持并发处理、数据库易被下载存在安全隐患、数据存储量相对较⼩等。
⽽且在以下⼏种情况下数据库基本上会吃不消:(1)数据库过⼤,⼀般access数据库达到50m左右的时候性能会急剧下降。
(2)⽹站访问频繁,经常达到100⼈左右的在线。
(3)记录数过多,⼀般记录数达到10万条左右的时候性能就会急剧下降。
三. 判断题1、从体系结构上看,至今所有计算机都是冯·诺依曼型计算机。
F2、控制器通常又称中央处理器,简称"CPU"。
T3、十进制数的11,在十六进制中仍可写成11。
F4、要输入汉字时,键盘可以处于大写或小写状态。
F5、硬盘上的文件删除后,其内容并没有真正删除,而是放在”回收站”中,只有再清除”回收站”中的内容才真正删除,软盘上的内容也一样。
F6、如果多台计算机之间存在着明确的主/从关系,其中一台中心控制计算机可以控制其它连接计算机的开启与关闭,那么这样的多台计算机就构成了一个计算机网络。
T7、计算机中安装防火墙软件后就可以防止计算机着火。
F8、关系中的记录可以重复. T9、Access数据库文件的扩展名为mdb。
T10、帧是构成FLASH动画的基本组成元素。
T11、计算机能进行数值计算,也能进行事务管理工作,如办公自动化。
T12、指令中的操作码提供的是操作控制信息,指明计算机应执行的操作的类型。
T13、WINDOWS是一种基于图形用户界面的操作系统。
T14、通常,磁盘使用以前要经过格式化。
F16、在按组织模式划分的域名中,"edu"表示政府机构。
F17、DBMS是数据库系统中对数据库进行管理的软件。
T20、中间件是介于应用软件和操作系统之间的系统软件。
T21、SRAM存储器是静态随机存储器。
T22、一个英文字母和一个汉字同样用一个字节来存储. F27、一台主机的域名由它所属名级域的域名和分配给主机的名字共同构成。
F30、数据经过解释并赋予一定的意义就成为信息。
T32、所有十进制小数都能准确地转换为有限位的二进制小数。
T33、WINDOWS XP是字长为16位的操作系统。
F34、在WINDOWS中,“我的电脑”和“资源管理器”功能相同,外观不同。
F36、世界上最大的广域网是因特网。
T37、1968年,IBM公司推出的数据库管理系统IMS属于关系模型。
建立Access 数据库的安全门在Office 2000下,Access数据库的安全机制已经更为完善。
除了对数据库设置密码保护,对数据库进行编码压缩,还可以启用用户级的安全机制,在用户级别上控制对数据库的访问。
一、数据库设置密码对于单机使用的数据库或者是需要工作组共享的数据库,仅设置密码保护较为合适。
知道密码的组成员,都有数据库的完全操作权限,彼此之间的使用权限没有什么区别。
设置密码的步骤如下:启动Microsoft Access,在弹出的选择窗口中点取消,不打开任何数据库。
点击菜单:文件---打开,在弹出的打开窗口中,选中要打开的数据库文件。
然后在打开按钮的右侧展开箭头上单击选定以独占方式打开,用独占方式打开选定的数据库。
在Access窗口菜单上点击:工具—安全—设置数据库密码。
在弹出的密码和验证输入框中,输入密码,注意区分大小写,并请记住。
然后点击确定按钮。
关闭数据库,退出Access环境,密码设置完毕。
下次再打开此数据库,就会提示输入密码,密码正确才能打开数据库。
如要复制数据库,请不要使用数据库密码。
如设置了密码,复制的数据库将不能同步。
数据库的密码是和数据库文件放置在一起,而不是放在工作组信息文件中。
二、数据库压缩编码为了进一步对数据库进行加密保护,可以对数据库进行编码压缩。
这样使用其它工具程序或字处理等软件就无法查看此数据库的内容。
而对用户在Access 下的使用则不影响。
编码的步骤如下:启动Microsoft Access,在弹出的选择窗口中点取消,不打开任何数据库。
点击菜单:工具—安全—加密/解密数据库。
在弹出的数据库加密/解密窗口中,选取要编码的数据库,点击确定按钮。
在弹出的数据库加密后另存为窗口中,在文件名输入框中输入编码后的文件名,点击保存按钮。
编码压缩后的数据库被另保为另一个文件。
三、用户级安全机制使用用户级的安全机制,可以更灵活更安全的保护数据库。
在这种安全机制下,在Access关联的工作组信息文件中建立用户和工作组帐户,用来管理用户;在具体的数据库中管理对象权限,可以给用户和工作组分别指定使用权限。
,,前段时间很多人问远程(如通过互联网)连接access数据库的方法,最近写了个例子,与大家共享:使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。
)。
分服务器和客户端两部分,服务器可以多用户同时连接。
远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器)。
-------------------------------------远程连接access数据库的几个方法:1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器中mdb文件所在的Folder共享即可。
ADO连接如下:oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\ServerName\DatabaseFolder\Database .mdb;Jet OLEDB:Database Password=databasepw;Persist Security Info=False"2.把Database放在Web Server上,使ADO或RDO通过RDS(Remote Data Service)及IIS来实现:如果服务器像上面Jave大侠说那样设置了ODBC DSN的话:oConn.Open "Provider=MS Remote;" & _"Remote Server=http://myServerName;" & _"Remote Provider=MSDASQL;" & _"DSN=AdvWorks;" & _"Uid=myUsername;" & _"Pwd=myPassword"如果设置的是OLE DB Provider 的话:oConn.Open "Provider=MS Remote;" & _"Remote Server=http://myServerName;" & _"Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=c:\somepath\mydb.mdb", _"admin", ""3.自己编写服务器程序,通过TCP/IP,传递Recordset。
可以多用户同时使用。
前提是每个用户都不能使用独占的方式打开。
共享数据库(MDB)注释本主题中的信息仅适用于Microsoft Access 数据库(.mdb)。
若要从另一台计算机上访问共享的Microsoft Access 数据库,另一台计算机上必须具备下列条件之一:Access 的本地安装、Access 的网络安装(逐个用户地授权)或运行时应用程序。
设置共享文件夹。
有关共享文件夹的详细信息,请使用Microsoft Windows 的“帮助索引”。
如果共享文件夹位于网络服务器上,则可能需要网络管理员的协助。
将Microsoft Access 数据库复制到一个共享文件夹。
确保Access 数据库设为在共享方式下打开,这是默认设置。
操作方法:在“工具”菜单上,单击“选项”。
在“高级”选项卡上“默认打开模式”下,单击“共享”。
注释共享数据库之前,应该删除文件中可能存储的任何个人信息。
有关详细信息,请参阅删除Access 文件或页面中的个人信息。
关于在网络上共享Access 数据库(MDB)注释本主题中的信息仅适用于Microsoft Access 数据库(.mdb)。
如果您的计算机已经连接到网络中,则您和其他用户可以同时使用一个Microsoft Access 数据库。
用于共享数据的方法在多用户环境下共享数据的方法有多种。
共享整个Access 数据库可以将整个Access 数据库放在网络服务器或共享文件夹中。
这是实现整个Access 数据库共享的最简单的方法。
每个用户都能共享数据,并能使用相同的窗体、报表、查询、宏和模块。
如果要让每个用户都以相同的方式使用Access 数据库,或者您不能支持其他用户创建其自己的对象,则可以采取这种策略。
仅共享Access 数据库中的表可以只将表放在网络服务器上,而将其他数据库对象都留在用户的计算机上。
这种情况下,Access 数据库的性能会有所提高,因为只有数据是通过网络发送的。
可以多用户同时使用。
前提是每个用户都不能使用独占的方式打开。
共享数据库(MDB)注释本主题中的信息仅适用于Microsoft Access 数据库(.mdb)。
若要从另一台计算机上访问共享的Microsoft Access 数据库,另一台计算机上必须具备下列条件之一:Access 的本地安装、Access 的网络安装(逐个用户地授权)或运行时应用程序。
设置共享文件夹。
有关共享文件夹的详细信息,请使用Microsoft Windows 的“帮助索引”。
如果共享文件夹位于网络服务器上,则可能需要网络管理员的协助。
将Microsoft Access 数据库复制到一个共享文件夹。
确保Access 数据库设为在共享方式下打开,这是默认设置。
操作方法:在“工具”菜单上,单击“选项”。
在“高级”选项卡上“默认打开模式”下,单击“共享”。
注释共享数据库之前,应该删除文件中可能存储的任何个人信息。
有关详细信息,请参阅删除Access 文件或页面中的个人信息。
关于在网络上共享Access 数据库(MDB)注释本主题中的信息仅适用于Microsoft Access 数据库(.mdb)。
如果您的计算机已经连接到网络中,则您和其他用户可以同时使用一个Microsoft Access 数据库。
用于共享数据的方法在多用户环境下共享数据的方法有多种。
共享整个Access 数据库可以将整个Access 数据库放在网络服务器或共享文件夹中。
这是实现整个Access 数据库共享的最简单的方法。
每个用户都能共享数据,并能使用相同的窗体、报表、查询、宏和模块。
如果要让每个用户都以相同的方式使用Access 数据库,或者您不能支持其他用户创建其自己的对象,则可以采取这种策略。
仅共享Access 数据库中的表可以只将表放在网络服务器上,而将其他数据库对象都留在用户的计算机上。
这种情况下,Access 数据库的性能会有所提高,因为只有数据是通过网络发送的。
当将一个数据库拆分为后端(表)和前端时,用户可以在不影响别人的情况下,对其自己的前端数据库中的窗体、报表和其他对象进行自定义。
在Internet 上共享Access 数据库对象或数据访问页可以将一个或多个数据库对象输出为静态的HTML 或服务器生成的HTML 格式,或者创建数据访问页,然后用浏览器(如Microsoft Internet Explorer)显示它们在万维网上的显示情况。
同步复制Access 数据库如果使用两台计算机(如,办公室计算机和便携式计算机),则可用Microsoft Windows“公文包”来制作Access 数据库的副本,并使这些副本保持同步。
另外,在不同地点工作的用户也可以同时使用其自己的副本,然后通过网络(拨号连接或Internet)将这些副本同步。
创建客户/服务器应用程序如果工作在客户/服务器环境中,则可以通过创建客户/服务器应用程序而利用这种环境所提供的显著功能和安全性。
应该将数据存储在数据库服务器(如Microsoft SQL Server)上的表中,而不要存储在Microsoft Access 中的本地表内。
Access 应用程序(客户程序)从服务器中检索它所需要的数据。
服务器维护数据的完整性并运行任何它可以求解的查询。
锁定信息(.ldb) 文件以共享方式打开Access 数据库文件(.mdb) 时,Microsoft Access 会用同一文件名(例如,Northwind.ldb)在该数据库文件所在的文件夹中,创建一个锁定信息文件(.ldb)。
该锁定信息文件存储计算机名(如mypc)和每位数据库共享用户的安全名称(如Admin)。
Microsoft Access 使用该信息来控制并发访问。
大多数情况下,在最后一个用户关闭数据库文件时,Microsoft Access 会自动删除锁定信息文件。
编辑共享数据库中的数据在多用户环境下,可能会有多个人同时对同一条记录进行操作。
因为其他人可以更改,甚至可以删除您正在编辑的数据,所以有时可能会与其他工作用户发生冲突。
Microsoft Access 可以帮助追踪正在编辑的记录的状态,并确保您使用的是最新数据。
当两人或多人都要编辑同一条记录时,Microsoft Access 会显示信息来帮助解决冲突。
例如,如果试图保存一条由其他用户锁定的记录,则Microsoft Access 会显示锁定该记录的用户的名称。
为了帮助追踪记录的状态,Microsoft Access 将在当前记录选定器内显示下列符号:符号含义这条记录是当前记录并且尚未编辑。
您已编辑过这条记录,但尚未保存所做的更改。
只要显示该符号,其他用户就看不到对这条记录的更改,而且如果将这个记录锁定,他们也不能编辑这条记录。
若要将该记录释放给其他用户使用,请保存或撤消所做的更改。
这条记录已由其他用户锁定。
不能对其进行编辑。
如果试图在一个锁定的记录内键入数据,Microsoft Access 将发出警告声。
还可以设置以下选项,用以控制共享数据库中数据的锁定和数据的刷新。
默认记录锁定设置不锁定Microsoft Access 不锁定您正在编辑的记录。
当试图保存对某条记录的更改,而其他用户已对该记录作了更改时,Microsoft Access 将显示选择信息:是覆盖其他用户对该记录所做的更改,将自己的记录版本复制到剪贴板上,还是放弃所做的更改。
该策略可以确保记录总可以被编辑,但会造成用户之间的编辑冲突。
已编辑的记录Microsoft Access 将锁定您正在编辑的记录,因此其他用户不能更改该记录。
这样也可能同时锁定存储在您磁盘上的其他相邻记录。
如果另一位用户试图编辑您已锁定的记录,则Microsoft Access 会在那位用户的数据表中显示锁定记录指示符。
该策略可以确保您总能完成已经开始的更改任务。
如果不经常有编辑上的冲突,则最好采用该策略。
所有记录对于您已打开进行编辑的窗体或数据表(及基表),Microsoft Access 将在打开的整段时间内,锁定其中的所有记录,使其他人不能编辑或锁定这些记录。
该策略具有限制性,因此请在确认您是唯一需要编辑记录的人时,才选用该策略。
在使用ODBC 编辑链接的SQL 数据库表中的数据时,Microsoft Access 并不锁定记录;而由该SQL 数据库的规则来管理锁定。
这种情况下,不论对数据库选择哪一种锁定记录设置,Microsoft Access 都会按选择“不锁定”设置来处理。
页级和记录级锁定可以指定Access 在共享数据库中使用的锁定级别。
如果使用页级锁定,则Access 会锁定4K 的页(记录所在的内存区域),而且编辑记录时可能会导致附近存储的其他记录也被锁定。
不过,使用页级锁定时性能往往较好。
如果使用记录级锁定,Access 将只锁定您正编辑的记录。
这将成为通过窗体、数据表访问数据时,以及通过使用记录集对象循环遍历记录的代码来访问数据时的默认行为,但不是通过操作查询或通过使用SQL 语句进行大量数据操作访问数据的默认行为。
更新重试间隔和刷新间隔设置可以使用“更新重试间隔”和“更新重试次数”设置来指定Microsoft Access 尝试保存被另一用户锁定的记录的频率和次数。
也可以使用“ODBC 刷新间隔”和“刷新间隔”设置来控制Access 刷新数据的频率。
刷新只会更新数据表或窗体中已有的数据,并不将记录重新排序,不显示新记录,也不去除已删除的记录和已不再满足条件的记录。
若要查看这些更改,必须重新查询数据表或窗体的基础记录。
保存共享数据库中的设计更改当有其他用户正打开Access 数据库时,用户不能将设计更改保存到Microsoft Access 数据库中。
确保更改保存的唯一途径是以独占模式打开Access 数据库。
通常,当试图对数据库对象(除了表和查询)或共享模式中的某一项进行设计更改时,如果当时您是Access 数据库的唯一用户,则Access 将临时提升您以独占模式使用Access 数据库。
当保存所有设计更改并关闭所有“设计”视图窗口时,Access 会将Access 数据库返回共享模式。
在此期间,其他用户不能打开Access 数据库。
如果其他用户以共享模式打开了Access 数据库而您试图做一个主要的设计更改,如修改窗体,则Access 会警告您可能不能保存更改。
但如果其他用户以共享模式打开Access 数据库而您试图做一个次要的设计更改,如更改打印机设置,则Access 不会警告您不能保存更改。
在这两种情况下,都要等到成为Access 数据库的唯一用户时,您才能保存主要设计更改,而Access 保存次要设计更改。
数据访问页的处理方式有所不同。
尽管创建、重命名、移动和删除数据访问页仍要求使用独占模式(因为这要更改Access 数据库中的信息),但是编辑数据访问页不要求提升为独占模式(因为相应的HTML 文件存在于数据库以外的文件系统中)。
主次设计更改之间的差别如果没有以独占模式访问Access 数据库,则Access 将在可能无法保存以下主要设计更改时向您发出警告:在“设计”视图中对数据库对象的更改(除表和查询以外)在“窗体”视图中对窗体属性表的更改在“Visual Basic 编辑器”中编译项目、修改项目属性、添加或删除引用重命名、粘贴或删除数据库对象将数据库对象另存为其他类型的数据库对象添加或修改命令栏上的控件在“数据库”窗口中编辑自定义组创建、重命名、移动和删除数据访问页如果没有以独占模式访问Access 数据库,则在可能无法保存以下次要设计更改时,Access 不会发出警告:对数据表格式(如线型和字体属性)的更改冻结、撤消冻结、隐藏和显示数据表列调整数据表列宽和行高对窗体或数据表筛选或排序次序的更改对子数据表状态的更改(展开还是折叠)对OLE 对象的OLE/DDE 链接的更改或对未绑定对象框内容的更改对打印机设置的更改对命令栏的更改,如命令栏的位置及其是否可视对“数据库”窗口布局的更改共享Access 数据库设计和开发的策略如果要共享Access 数据库的设计,不妨考虑使用以下策略:针对特定的开发者指定特定的对象或对象组。
例如,一位开发者设计窗体而另一位设计报表。
然后,每位开发者可以在Access 数据库的私有副本上工作。
当开发小组准备测试、组装和生产时,每位开发者从各自的私有数据库副本中将数据库对象导出到主Access 数据库中。
使用源代码控制程序。
如果使用Visual SourceSafe,最好定期运行“性能分析器”(在“工具”菜单上指向“分析”,然后单击“性能”即可打开)来保持最佳性能。
有关在共享数据库中保存设计更改的提示如果另一位用户已打开某个表或正在查看基于该表的查询、窗体或报表中的数据,则不能更改该表的设计。