應用舉例
以上介紹了用dao訪問遠程數(shù)據(jù)庫的具體操作,下面通過一個例子說明鏈接遠程表和建立記錄集對象的方法。
首先建立一個新工程,在窗體上畫5個命令按鈕,1個數(shù)據(jù)控件和1個數(shù)據(jù)網(wǎng)格控件(dbgrid)。各對象的屬性設置見表1。
表1 窗體1對象屬性設置
對 象
標 題(caption)
名 稱(name)
窗體
遠程數(shù)據(jù)訪問
form1
命令按鈕1
鏈接遠程表
cmd 鏈接
命令按鈕2
添加
cmdadd
命令按鈕3
刪除
cmddel
命令按鈕4
修改
cmdmodify
命令按鈕5
結束
cmdend
數(shù)據(jù)控件
data1
data1
數(shù)據(jù)網(wǎng)格
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 ’ 遍 歷 記 錄 集 中 的 每 個 字 段
’ 在 輸 入 框 中 輸 入 各 字 段 的 數(shù) 據(jù)
.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
相關推薦:全國計算機等級考試將于3月28日至4月1日舉行北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |