ACCESS数据库不支持事务 *** 作,但是我们可以通过ado类库实现对access数据库的事务 *** 作。
下面举例示范ADO类库实现对ACCESS数据库的事务 *** 作供参考。注意下列VBA代码需要先引用ADO类库
假设有一个团队表teams和团员表members,每个团队编号下面都有自己的团员名单,我们每向团员表添加一位团员时,团队表相应团号的人数就要增加一人,这样就需要进行两个 *** 作,一是团员表追加一条记录,二是团队表对应团队的人数更新为增加一人,这两个 *** 作必须要么全部成功,要不就全部失败,不得存在中间状态,否则记录就不正确了。如何实现?代码如下:
Private Sub Command0_Click()On Error GoTo Err_Command0_Click
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
cn.BeginTrans '开始执行事务
'向团员表添加一位团员
cn.Execute "insert into members(gid,m_name) values(" & 团队号码 & ",'" & 团员名称 & "')"
'相应id团队的人数增加1人
cn.Execute "update teams set pax=IIf(IsNull(pax),0,pax)+1 where gid=" & 团队号码
cn.CommitTrans '结束事务,确保上述两个 *** 作不会出现一个成功而另一个失败的状况
MsgBox "团员添加成功"
Exit_Command0_Click:
Exit Sub
Err_Command0_Click:
MsgBox Err.Description
Resume Exit_Command0_Click
End Sub
Access主要对象有数据表、查询、报表、窗体、宏、模块。
数据表(Table) ——表是Access数据库的核心对象,主要是用于存储数据,是创建其他5种对象的基础。数据表是以行、列来显示数据记录,是同一类数据的集合体。
表由记录组成,记录由字段组成,是Access数据库中存贮数据的地方,故又称数据库。一个数据库中可以包含一个或多个数据表。
查询(Query)——根据事先设定的限制条件从一个或多个数据表中检索除符合条件的数据,并加以统计和分析。查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。一方面窗体可以增加录入过程的趣味性,另一方面也保护了数据的完整性、准确性和安全性。
报表(Report)——报表是用于将将检索的数据或原始数据以特定的方式显示出来,报表既可以对数据进行分组,还支持对数据的各种统计和计算。
宏(Macro)——是一个或多个命令的集合,其中每个命令都可以实现特定的功能,通过将这些命令组合起来,可以自动完成某些经常重复或复杂的动作。Access大部分功能是可以通过宏的组合来完成的。
模块(Module)——模块的功能与宏类似,但它定义的 *** 作比宏更精细和复杂,用户可以根据自己的需要编写程序。
扩展资料
Access数据库的优缺点:
Microsoft Access Basic提供了一个丰富的开发环境。这个开发环境给你足够的灵活性和对Microsoft Windows应用程序接口的控制,同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。
不过,许多优化、有效数据和模块化方面只能是应用程序设计者才能使用。开发者应致力于谨慎地使用算法。除了一般的程序设计概念,还有一些特别的存储空间的管理技术,正确使用这些技术可以提高应用程序的执行速度,减少应用程序所消耗的存储资源。
提高速度和减少代码量
你可以用几种技巧来提高你的编码速度,但是却找不到有效的算法的替代者。接下来的这几点建议可以提高你的编码速度同时又减少你的应用程序消耗的存储空间。
用整形数进行数学运算
即使Microsoft Access 会使用一个联合处理器来处理浮点型算术,整型数算术也总是要快一些。当你的计算不含有小数,尽量使用整型或长整型而不是变量或双整型。整型除法同样也要比浮点除法要快。在使用其他一些有效的数据类型时会警告:没有任何东西可以替换有效的运算法则。
避免使用过程调用
避免在循环体中使用子程序或函数调用。每一次调用都因额外的工作和时间而给编码增大了负担。每一次调用都要求把函数的局部变量和参数压栈,而栈的大小是固定的,不能随便加大,并且同时还要于Microsoft Access共享。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)