VB中远程数据库的访问(3)-应用举例
2008-02-23 06:52:47来源:互联网 阅读 ()
以上介绍了用dao访问远程数据库的具体操作,下面通过一个例子说明链接远程表和建立记录集对象的方法。
首先建立一个新工程,在窗体上画5个命令按钮,1个数据控件和1个数据网格控件(dbgrid)。各对象的属性设置见表1。
表1 窗体1对象属性设置
对 象 标 题(caption) 名 称(name) 窗体 远程数据访问 form1 命令按钮1 链接远程表 cmdlink 命令按钮2 添加 cmdadd 命令按钮3 删除 cmddel 命令按钮4 修改 cmdmodify 命令按钮5 结束 cmdend 数据控件 data1 数据网格 dbgrid1
其中dbgrid1中的datasource属性设为data1,命令按钮2,3,4的visible属性设为false。
三、应用举例
编写如下事件过程:
private sub cmdadd_click() ' 添 加 记 录 子 过 程
on error goto errhandler
with rst
.addnew
for i = 0 to .fields.count - 1 ' 遍 历 记 录 集 中 的 每 个 字 段
' 在 输 入 框 中 输 入 各 字 段 的 数 据
.fields(i).value = inputbox
(" 输 入 记 录 信 息" & VBcr " 字 段 名:" .fields(i).name)
next i
.update
end with
data1.refresh
dbgrid1.rebind
errhandler: ' 错 误 处 理
select case err
case 3022, 3421
msgbox (error vbcr " 输 入 无 效")
exit sub
case else
response = 0
exit sub
end select
end sub
private sub cmddel_click() ' 删 除 记 录 过 程
on error goto errhandler
begintrans ' 事 务 处 理
with data1.recordset
if .bof and .eof then exit sub
' 如 果 没 有 记 录, 退 出 过 程
.delete ' 删 除
if .bof and .eof then
' 如 果 没 有 记 录, 退 出 过 程
exit sub
elseif .eof then .movelast
' 如 果 删 除 的 是 最 后 一 条 记 录, 光 标 移 至 最 后 一 记 录
else: .movenext
' 移 至 下 一 条 记 录
end if
end with
if msgbox(" 确 实 要 删 除 这 一 记 录 ?",
vbquestion vbyesno) = vbyes then
committrans ' 确 认
data1.refresh
else
rollback ' 撤 消 改 动
data1.refresh
end if
errhandler: ' 错 误 处 理
select case err
case 3021 ' 无 当 前 记 录
msgbox (" 无 当 前 记 录, 请 选 择 要 删 除 的 记 录")
exit sub
case else
msgbox (error)
exit sub
end select
end sub
private sub cmdend_click()
end ' 结 束 应 用 程 序
end sub
private sub cmdmodify_click()
dbgrid1.allowupdate = true ' 允 许 修 改
end sub
privatev sub cmdlink_click()
form1.hide
form2.show
end sub
private sub dbgrid1_aftercolupdate(byval colindex as integer)
' 数 据 修 改 后 触 发 该 事 件
on error goto err1
data1.refresh
err1:
select case err
case 0
response = 0
case else
exit sub
end select
end sub
private sub dbgrid1_beforecolupdate
(byval colindex as integer, oldvalue as variant, cancel as integer)
' 数 据 修 改 前 触 发 该 事 件
on error goto errhandler:
begintrans
if msgbox(" 确 实 要 修 改这 一 内 容 ?", vbquestion vbyesno) = vbyes then
committrans
else
rollback
data1.refresh
end if
errhandler:
select case err
case 0
response = 0
case else
msgbox (error)
exit sub
end select
end sub
private sub form_load()
' 在 窗 体 装 入 时, 网 格 中 的 数 据 不 可 添 加, 修 改
dbgrid1.allowaddnew = false
dbgrid1.allowupdate = false
end sub
private sub form_resize()
on error resume next
' 当 窗 体 调 整 时 会 调 整 网 格
dbgrid1.height = me.scaleheight - data1.height - cmddel.height - 30
end sub
在工程中添加一个窗体,在窗体上画6个标签,1个命令按钮(标题为“ 确认”,名称为cmd 确认),3个文本框和1个组合框。
在窗体的声明部份输入以下代码:
' 声 明 窗 体 层 变 量
dim rodbs as database
dim strdb as string, strrodb as string, strcn as string, strtdf as string
dim linktdfname as string
编 写 如 下 事 件 过 程:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:用OLE自动化Outlook
- VB中远程数据库的访问(3)-应用举例 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