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

2016-02-19 12:28 3 1 收藏

下面这个VB中远程数据库的访问(3)-应用举例教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - 编程语言 】

三、应用举例
  
  以上介绍了用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。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

三、应用举例
  
  编写如下事件过程:
  
  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)'打开远程数据库
  
  '删除combo1中的内容
  
  ifcombo1.listcount=1then
  
  fori=combo1.listcount-1to0step-1
  
  combo1.removeitemi
  
  nexti
  
  endif
  
  '把数据库中的表名加到combo1中
  
  fori=0torodbs.tabledefs.count-1
  
  combo1.additemrodbs.tabledefs(i).name
  
  nexti
  
  endsub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)->

来源:http://www.tulaoshi.com/n/20160219/1600984.html

延伸阅读
使用MIDAS访问远程Access数据库 Allen Tao(http://blog.csdn.net/allentao/) 2005-5-3本文源码下载访问远程数据库常用的办法是使用大型数据库自带的客户端工具,如SQL Server和Oracle等都带有这样的工具。带对于Access这样的小型数据库,这种方法就无法使用了,因为Access不提供这样的客户端工具。但我们可以通过MIDAS实现访问远程Access数据...
----开放数据库互连(ODBC)已经成为Client/Server数据库应用系统中访问远程数据库的一个标准。做为强大的前端开发工具,MSVisualBasic为开发者提供了多种访问ODBC数据源的途径,如JET数据库引擎、ODBCAPI函数、RDO接口等。比较而言,直接使用ODBCAPI函数的编程难度最大,但由此获得的存取数据库的性能也是最佳。诚然,VB4.0企业版提供的RDO接...
标签: SQLServer
摘 要 : 本文讨论了Visual Basic应用程序访问SQL Server数据库的几种常用的方法,分别说明了每种方法的内部机理并给出了每种方法的一个简单的实例,最后比较了每种方法性能和优缺点。 一、引言 SQL Server是微软推出的中小型网络数据库系统,是目前最常用的数据库系统之一。随着SQL Server网络数据库应用程序日益增...
本文描述了MySQL,一种利用第三方数据库开发电子贸易和其它复杂、动态网站的有效工具。MySQL 是一种快速、多线程和全功能的 SQL服务器。除了描述MySQL系统的基本体系结构以外,本文还提供了以Tcl和C++编写的简单示例,帮助您开发支持数据库的Web应用。 一个必须存储或访问大量信息的应用程序可以从使用第三方数据库产品中受益匪浅。在...
标签: MySQL mysql数据库
本文描述了MySQL,一种利用第三方数据库开发电子贸易和其它复杂、动态网站的有效工具。MySQL 是一种快速、多线程和全功能的 SQL服务器。除了描述MySQL系统的基本体系结构以外,本文还提供了以Tcl和C++编写的简单示例,帮助您开发支持数据库的Web应用。一个必须存储或访问大量信息的应用程序可以从使用第三方数据库产品中受益匪浅。在对信息的访...

经验教程

952

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部