应用举例
以上介绍了用dao访问远程数据库的具体操作,下面通过一个例子说明链接远程表和建立记录集对象的方法。
首先建立一个新工程,在窗体上画5个命令按钮,1个数据控件和1个数据网格控件(dbgrid)。各对象的属性设置见表1。
表1 窗体1对象属性设置
对 象
标 题(caption)
名 称(name)
窗体
远程数据访问
form1
命令按钮1
链接远程表
cmd 链接
命令按钮2
添加
cmdadd
命令按钮3
删除
cmddel
命令按钮4
修改
cmdmodify
命令按钮5
结束
cmdend
数据控件
data1
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 cmd 链 接_click()
form1.hide
form2.show
end sub
责任编辑:小草