VB中远程数据库的访问(3)-应用举例
2018-06-17 17:12:45来源:未知 阅读 ()
以上介绍了用dao访问远程数据库的具体操作,下面通过一个例子说明链接远程表和建立记录集对象的方法。
首先建立一个新工程,在窗体上画5个命令按钮,1个数据控件和1个数据网格控件(dbgrid)。各对象的属性设置见表1。
表1窗体1对象属性设置
其中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)'打开远程数据库
'删除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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:把最小化图标放到任务栏右下角
- 设置对VisualBasic数据库连接的动态路径 2018-06-17
- HierarchicalFlexGrid控件 2018-06-17
- 复制数据库(1)--网络数据库的复制和同步(5) 2018-06-17
- 在VB中更改SQLServer数据库结构 2018-06-17
- 数据访问控制--多客户环境下VB数据库编程之(2) 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash