Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->ViualBasic ->正文

VB中远程数据库的访问(3)-应用举例

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]
三、应用举例

  以上介绍了用dao访问远程数据库的具体操作,下面通过一个例子说明链接远程表和建立记录集对象的方法。

  首先建立一个新工程,在窗体上画5个命令按钮,1个数据控件和1个数据网格控件(dbgrid)。各对象的属性设置见表1。

表1窗体1对象属性设置
-align="middle"width="33">对象->-align="middle"width="33">标题(caption)->-align="middle"width="34">名称(name)->-width="33">窗体->-width="33">远程数据访问->-width="34">form1->-width="33">命令按钮1->-width="33">链接远程表->-width="34">cmdlink->-width="33">命令按钮2->-width="33">添加->-width="34">cmdadd->-width="33">命令按钮3->-width="33">删除->-width="34">cmddel->-width="33">命令按钮4->-width="33">修改->-width="34">cmdmodify->-width="33">命令按钮5->-width="33">结束->-width="34">cmdend->-width="33">数据控件->-width="33">->-width="34">data1->-width="33">数据网格->-width="33">->-width="34">dbgrid1->

其中dbgrid1中的datasource属性设为data1,命令按钮2,3,4的visible属性设为false。

三、应用举例

编写如下事件过程:

privatesubcmdadd_click()'添加记录子过程

onerrorgotoerrhandler

withrst

.addnew

fori=0to.fields.count-1'遍历记录集中的每个字段

'在输入框中输入各字段的数据

.fields(i).value=inputbox

("输入记录信息"&vbcr "字段名:" .fields(i).name)

nexti

.update

endwith

data1.refresh

dbgrid1.rebind

errhandler:'错误处理

selectcaseerr

case3022,3421

msgbox(error vbcr "输入无效")

exitsub

caseelse

response=0

exitsub

endselect

endsub

privatesubcmddel_click()'删除记录过程

onerrorgotoerrhandler

begintrans'事务处理

withdata1.recordset

if.bofand.eofthenexitsub

'如果没有记录,退出过程

.delete'删除

if.bofand.eofthen

'如果没有记录,退出过程

exitsub

elseif.eofthen.movelast

'如果删除的是最后一条记录,光标移至最后一记录

else:.movenext

'移至下一条记录

endif

endwith

ifmsgbox("确实要删除这一记录?",

vbquestion vbyesno)=vbyesthen

committrans'确认

data1.refresh

else

rollback'撤消改动

data1.refresh

endif

errhandler:'错误处理

selectcaseerr

case3021'无当前记录

msgbox("无当前记录,请选择要删除的记录")

exitsub

caseelse

msgbox(error)

exitsub

endselect

endsub

privatesubcmdend_click()

end'结束应用程序

endsub

privatesubcmdmodify_click()

dbgrid1.allowupdate=true'允许修改

endsub

privatevsubcmdlink_click()

form1.hide

form2.show

endsub

privatesubdbgrid1_aftercolupdate(byvalcolindexasinteger)

'数据修改后触发该事件

onerrorgotoerr1

data1.refresh

err1:

selectcaseerr

case0

response=0

caseelse

exitsub

endselect

endsub

privatesubdbgrid1_beforecolupdate

(byvalcolindexasinteger,oldvalueasvariant,cancelasinteger)

'数据修改前触发该事件

onerrorgotoerrhandler:

begintrans

ifmsgbox("确实要修改这一内容?",vbquestion vbyesno)=vbyesthen

committrans

else

rollback

data1.refresh

endif

errhandler:

selectcaseerr

case0

response=0

caseelse

msgbox(error)

exitsub

endselect

endsub

privatesubform_load()

'在窗体装入时,网格中的数据不可添加,修改

dbgrid1.allowaddnew=false

dbgrid1.allowupdate=false

endsub

privatesubform_resize()

onerrorresumenext

'当窗体调整时会调整网格

dbgrid1.height=me.scaleheight-data1.height-cmddel.height-30

endsub

在工程中添加一个窗体,在窗体上画6个标签,1个命令按钮(标题为“确认”,名称为cmd确认),3个文本框和1个组合框。

在窗体的声明部份输入以下代码:

'声明窗体层变量

dimrodbsasdatabase

dimstrdbasstring,strrodbasstring,strcnasstring,strtdfasstring

dimlinktdfnameasstring

编写如下事件过程:

privatesubcmdOK_click()

onerrorgotoerrhandler:

strdb=text2.text

'本地数据库名及路径

linktdfname=text3.text

'本地数据库中新建的链接远程表的表名

strcn=strrodb'连接字符串

strtdf=combo1.text'指定远程数据库中要访问的表

'调用linktable过程

calllinktable(strdb,strrodb,strcn,strtdf,linktdfname)

'调用rst_display过程

callrst_display(strdb,linktdfname,form1)

form2.hide

form1.show

form1.caption="远程数据:" strcn "-" strtdf

'显示“添加”,“删除”,“修改”控件

form1.cmdadd.visible=true

form1.cmddel.visible=true

form1.cmdmodify.visible=true

errhandler:

selectcaseerr

case0

response=0

caseelse

msgbox(error vbr "重新输入")

exitsub

endselect

endsub

privatesubcombo1_gotfocus()

strrodb=text1.text'指定远程数据库名及路径

setrodbs=opendatabase(strrodb)'打开远程数据库


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 下一页


上一篇:VB数据库数据的选项录入及选项增减与编辑   下一篇:VB中播放WAV文件

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·VB图像处理之像素的获取和输出
·VB实现图像在数据库的存储与显示
·VB图像处理之二次线性插值的应用
·VB图像处理之几个常用滤镜的实现
·VB图像处理之铅笔画算法和木雕算法
·用VB6.0编写磁盘格式化程序
·VB实现文件数据对SQLServer上传下载
·用VB实现实时曲线的绘制和保存
·VB图像处理之图像的亮度对比度调整
·VB图像处理之图像的色彩纠正
推荐文章
·使用调用外部程序函数实现API函数高
·VisualBasic可以产生四角形以外其他
·VBScript数据类型
·如何用VB准确计算年龄
·再谈VB程序的加密
·用WinSock设计Chat程序
·VB6在拖托盘中写入应用程序图标
·MTS管理自动化
精彩文章
·VisualBasic让表单一开始就显示在荧
·VisualBasic代码优化的六条军规
·用VB编写WindowsCGI应用程序
·用VB编写异步多线程下载程序
·PropertyBag对象实现数据连续操作
·VisualBasic软件设计中的几个问题
·VB创建、修改、删除WIN2K用户
·你真正理解AllowUnroundedFloatingP
·用VB实现“百叶窗”的图形特效
·复本操作的对象、属性和方法(1)--网
·充分扩充VisualBasic功能
·VB从零开始编外挂(十二)
·人民币小写转大写
·如何获得系统光驱的盘符
·打开文本文件各种方法
·VisualBasic6.0FAQ
·Combo的自动查询技术
·用VisualBasic也可以实现P2P
·VB环境多媒体压缩数据流播放技术
·移动文件到回收站
·ADO设定独占性的资料库
·用BASIC语言设计Windows风格的用户
·判断一个32位程序是否结束
·用VB6.0实现几种图文特效的演示程序
·如何用VB访问外来数据库
·巧截字符串(探讨用InStrRev函数配合
Power by linux-cn.com 粤ICP备05006655号