在Visual Basic中用DAO实现数据库编程

在Visual Basic中用DAO实现数据库编程,第1张

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

巧用Excel建立数据库大法!\x0d\x0a\x0d\x0a日常工作中,我们常常需要建立一些有规律的数据库。例如我为了管理全乡的农业税,需建立一数据库,该数据库第一个字段名为村名,第二个字段名为组别。我乡共19个村,每个村7~17个组不等,共计258个组。这个数据库用数据库软件(哪怕是Visual FoxPro 6.0或是Access97等高档次的)很不好建立——逐个儿输入吗,只有傻瓜才有这种想法。用Access宏或FoxPro编程来输入吧,这些数据似乎还嫌不够规则(每个村对应的组数不一定相同),这个程序编写可就不那么简单了,除非你是编程高手兼编程迷,否则可有小题大作之嫌了。 \x0d\x0a\x0d\x0a其实Excel提供了一些很有用的功能,可让我们任何一个人都可轻松搞定这些数据库: \x0d\x0a\x0d\x0a第一步:打开Excel97(Excel2000当然也行),在A列单元格第1行填上“村名”,第2行填上“东山村”,第19行填上“年背岭村”(注:东山17个组,2+17=19据此推算),第28行填上“横坡村”(算法同前,牛背岭村9个组:19+9=28),如此类推把19个村名填好。 \x0d\x0a\x0d\x0a第二步:在第B列第1行填上“组别”,第2行填上“第1组”并在此按鼠标右键选择“复制”把这三个字复制剪贴板,然后在每一个填有村名的那一行的B列点一下鼠标右键选择“粘贴”在那里填上一个“第1组”。 \x0d\x0a\x0d\x0a第三步;用鼠标点击选中A2“东山村”单元格,然后把鼠标单元格右下角(此时鼠标变为单“十”字形),按住鼠标往下拖动,拖过的地方会被自动填上“东山村”字样。用同样的方法可以把其它村名和组别用鼠标“一拖了之”。填组别时你别担心Excel会把组别全部填为“第1组”,只要你别把“第1组”写成“第一组”,Excel会自动把它识别为序列进行处理。所以拖动“第1组”时,填写的结果为“第2组”“第3组”??填完这两个字段后,其它的数据可以继续在Excel中填写,也可等以后在数据库软件中填写,反正劳动强度差不多。 \x0d\x0a\x0d\x0a第四步:保存文件。如果你需要建立的是Access数据库,那么别管它,就用Excel默认的“.xls”格式保存下来。如果你需要建立的是FoxPro数据库,那么请以Dbase 4 (.dbf)格式保存文件。 \x0d\x0a\x0d\x0a第五步:如果需要的是Access数据库,那么你还必需新建一个Access数据库,在“新建表”的对话框里,你选择“导入表”然后在导入对话框中选择你刚刚存盘的“.xls”文件。(什么?你找不到?!这个对话框默认的文件类型是Microsoft Access,只要你改为Microsoft Excel 就能找到了),选择好导入文件后,你只要注意把一个“第一行包含列标题”的复选框 芯托辛耍ㄈ绻悴恍枰_D字段,你可以在Access向你推荐主关键字时拒绝——选择“不要主关键字”),其余的你都可视而不见,只管按“下一步”直至完成。导入完成后你可以打数据库进行使用或修改。如果你需要的是FoxPro数据库,那么更简单,可以直接用FoxPro打开上一步你存盘的“.dbf”文件,根据需要进行一些诸如字段宽度、字段数据类型设置就可以使用了。 \x0d\x0a\x0d\x0a说到这里,你可能会说“呀,太简单了,我也会”,那么好了,我写这篇文章的目的就是要大家尽可能不再做那些很麻烦的事,“该偷懒时就偷懒”嘛。

数据库开发编程主要是指利用数据库本身提高的一些命令,方法,存储过程,可以编写对数据的定值维护, *** 作,删除,比对等一些动作。好的数据库管理员可以做到让数据库自动定期维护数据,查找坏数据,并导到某个特定的表里,然后自动更新等等。数据库保存数据是一个基本功能。优势就是开发和利用。就像仓库一样,如果只是简单地把东西堆进去,那只是仓库的简单功能。如果给仓库配备了一个管理员,你就可以很方便快捷的查找,保管各种物品,并对各种物品进行有序存放。这就是数据库的作用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10820531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存