DAO(DataAccessObject)全称为数据访问对象 它是数据库编程的重要方法之一 DAO的一种面向对象的界面接口 特色为它不是可视化的对象 使用它全部都要靠编码来完成 DAO是设计关系型数据库系统结构的对象类的集合 它提供了完成管理这样一个系统所需的全部 *** 作的属性和方法 包括创建数据库 定义表 字段和索引 建立表间的关系 定位和查询数据库等工具 由于ADO(ActiveXDataObjectActiveX数据对象)的出现 DAO的使用已大大减少 但它无须使用ODBC(开放数据库连接)便可连接各个数据源 因而我们仍经常用经典的DAO 下面我向大家详细介绍如何使用DAO编程
DAO使用之前必须先引用 方法为打开VB 从VB的 工程 菜单中 选择 引用 项 当 引用 对话框出现后 从库的列表中 选择 MicrosoftDAO ObjectLibrary 单击 确定 现在便可以使用DAO对象库提供的所有对象进行编程了
一 创建数据库
在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库 这一点在程序中是非常有用的 用户可以根据要求实时建立数据库 建立过程如下
PrivateSubCom_creat_Click()
OnErrorGoToErr
CreatDataBase 数据库名称 mdb dbLangGeneral
Msgbox 数据库建立完毕
ExitSub
Err :
MsgBox 不能建立数据库! &vbCrLf&vbCrLf&Err Description vbInformation
EndSub
这样 数据库便在当前默认的路径下建立了
二 创建表与字段
建立数据库后 则需要在该数据库中建立表 这要用到TableDef对象 先定义一个TableDef类型的对象 然后用TableDef集合中Append方法将之追加到数据库当中去 并且同时定义一个Field对象 用CreatFiele的方法创建一个Field对象 向表中添加字段 例如:
PrivateSubCom_table_Click()
OnErrorGoToErr
DimDefdbAsDataBase
DimNewTableAsTableDef
DimNewFieldAsField
SetDefdb=Workspaces( ) OpenDatabase(App path&数据库名称 mdb False)
SetNewTable=DefDataBase CreateTableDef( 表名 )
SetNewField=DefTable CreateField( 字段名 dBText )′创建一个字符型的字段 长度为 个字符
DefTableFields AppendNewField′字段追加
DefDatabase TableDefs AppendNewTable′表追加
Msgbox 表建立完毕
ExitSub
Err :
MsgBox 对不起 不能建立表 请先再建表前建立数据库? vbCritical
EndSub
一个数据库可能有十几个甚至几十个字段 一个表中有多少个字段 则要创建多少次并要追加到表中 每建立一个字段后都要用到字段追加命令 但是表追加只需在所有字段建立完成后用一条命令即可完成
三 打开数据库
在VB中 对一个对象变量引用之前必须加以说明 DAO也是如此 必须先声明数据库变量 例如 DimdbaseAsDatabase 建立了数据库对象变量后 我们便可打开数据库了 在一般情况下都只是访问一个数据库 当打开数据库后再对数据库中的各个记录进行 *** 作 这就要用到Recordset对象建立记录集 例如
PrivateSubCommand_OpenDatabase_Click()
DimdbaseasDatabase
DimrsAsRecordset
Setdbase=OpenDatabase(App path&数据库名称 mdb )
Setrs=dbase OpenRecordset( select*from表名 )
EndSub
这样 数据库中的记录便放到Recordset中 可以进行后续 *** 作了
四 使用数据库
当打开数据库 建立Recordset记录集后 便可浏览 删除 添加 查找数据库中的内容
)向前浏览
PrivateSubcmd_previous_Click()
rs MovePrevious
ifrs BOF=Truethen
rs Movelast
Endif
fori= to
label(i) caption=rs F
)向后浏览
PrivateSubcmd_next_Click()
rs MoveNext
Ifrs EOF=Truethen
rs MoveFirst
Endif
fori= to
label(i) caption=rs Fields(i)&
next
EndSub
)删除记录
PrivateSubcmd_del_Click()
OnErrorGoTohandle
Dimmsgasstring
msg= 是否要删除记录 &Chr$( )
msg=msg&label( )′把删除记录的代号加入msg中
IfMsgbox(msg 删除记录 )<>ThenExitsub
rs delete
rs Movenext
Ifrs EOF=TrueThen
rs MovePrevious
Endif
fori= to
label(i) caption=rs Fields(i)&
next
handle:
MsgBox 该记录无法删除!!!
ExitSub
EndSub
)添加记录
向数据库中添加记录比较麻烦一点 大致分为三步 首先 用AddNew方法向数据库添加一个新的空白记录 其次 将要输入的数据分别赋到数据库的各个字段中 最后 用Updata的方法 把记录写到数据库中去 例如
PrivateSubcmd_new_Click()
rs AddNew
Fori= to
rs Fields(i)=TextBox(i) Text
Next
rs Updata
EndSub
)查找记录
查找记录可以用Find方法 例如
PrivateSubCmd_search_Click()
Setrs=dbase openRecordset( 表名 dbopenDynaset)
rs findfirst 字段名= &Text Text&′Text Text是输入的关键字
ifrs Nomatch=Truethen
Msgbox 对不起 没有该记录
else
Fori= to
label(i) caption=rs Fields(i)&
Next
Endif
rs close
EndSub
以上只是大致介绍了DAO的一些最常用 最典型的用法 真正要熟练掌握它需要不懈的努力 当你很好的理解了DAO后 对学习新的RDO和ADO也有很大的帮助 并且DAO和ADO可以同时使用 DAO的缺陷在于查找功能不强 没有ADO方便 但动态创建数据库却远超ADO 因此有时二者结合更强大 我们相信DAO一定会帮你节约宝贵时间 为工作提供方便
lishixinzhi/Article/program/c/201404/30446中国IT实验室 www. chinaitlab .com 很多计算机相关书籍 喜欢的朋友可以去瞧瞧(不过顶一下再走,呵呵)
给出部分书的名称:
精通Visual C++图像编程 MFC中文帮助 MFC程序员的WTL指南
VC6从入门到精通-开发者眼中的VC VC6从入门到精通-附录 MS VC++6.0程序员指南
VC6从入门到精通-基础篇 VC6从入门到精通-VC与INTERNET Visual C++ 使用指南
Visual C++知识库 Visual C++ MFC入门教程 Visual C++ 6 参考大全
跟我学 VISUAL C++ 6.0 Visual C++ 6.0语言参考手册 Visual Lisp开发人员手册
Visual C++ 从入门到精通 Visual J++ 6.0 WFC 类库手册 Visual InterDev 从入门到精通
Visual C++ 6.0用户开发手册 VC编程指南 VC++6.0 类库参考手册
VC++database编程大全 VC6.0 运行库参考手册 Visual C++6.0运行库参考手册
VC++6.0模板库手册 VC++面向对象入门 VC新手学堂
Visual C++ 6.0预处理器参考手册 VC5.0开发人员参考手册 VC6中文版程序员开发指南
Visual J++ 6.0 WFC类库参考手册一 VC6 模板库参考手册 VC++编程指南
Visual J++ 6.0 WFC类库参考手册二 VC6.0 MFC类库参考手册 VC6从入门到精通-VC与数据库管理
MS VC++ 6.0 MFC类库参考手册 一 MS VC++ 6.0 MFC类库参考手册 二 走进Visual C++
实例篇
Visual C++ 实践与提高-图形图像编程篇 Visual C++ 数字图像处理 VC-MFC编程实例
Visual C++实践与提高_环境剖析IDE篇 Visual C++程序设计:基础与实例分析 Visual C++ 6.0实例
Visual C++课程设计案例精编 Visual C++ 6.0开发与实例 VISUAL C++扩展编程实例
Visual C++6.0高级编程技巧与实例 VC++扩展编程实例 Visual C++编程技巧与范例
战胜Visual C++必做练习50题 Visual C++6.0编程与实例解析 VC-MFC扩展编程实例
MFC资源大全 精通Visual C++ 6.0 Visual C++程序模块集锦
Visual C++_Turbo C串口通信编程 Visual C++ 6.0应用编程150例 Visual C++ 6.0实例教程电子教案
教程篇
MFC Windows程序设计 Visual C++网络通信协议分析 VC6.0数据库编程
Visual C++ 学习教程 Visual_C++_新起点—6.0实用教程 Visual C++ 6-24学时学习教程
Visual C++ 6.0 21天自学教程 VC++网络教程 Visual C++ MFC 简明教程
VC 数据库编程三部教学 Visual C++ 6.0 数据库编程大全 VC新手学堂简明教程
Visual C++ 6.0 开发宝典 Visual C++ 6.0 教程 Visual C++ 6.0 高级编程
VC++6.0培训教程 Visual J++ 6.0 即学即用 Visual C++与面向对象程序设计教程
Visual C++6.0高级开发教程 Visual C++.NET 宝典 Visual C++5.0 程序设计
技术与应用
VC++6.0 用户界面制作技术与应用实例 深入浅出WINDOWS MFC程序设计 Visual C++ 角色扮演游戏程序
Visual C++6.0程序设计提高篇 VC++编程资料 VC++ 函数经典
VC++与Matlab混合编程的快速实现 Visual C++ 5.0易学活用 VISUAL C++ 设计WIN32应用程序
Visual C++入门与应用 Visual C++6.0开发宝典 Visual C++6.0技术内幕
VC++6编程方法 深入VC编程内幕 VC编程经验总结
用VC++编写USB接口通信程序 用VC开发CGI 疯狂VC技巧集
VC6开发宝典 Visual C++经典 Visual C++ 6 轻松进阶
VC编程常用捷径 MFC技术内幕 VC深入编程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)