国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

VB中遠程數(shù)據(jù)庫的訪問(3)-應(yīng)用舉例

2019-11-18 17:47:45
字體:
供稿:網(wǎng)友
三、應(yīng)用舉例

  以上介紹了用dao訪問遠程數(shù)據(jù)庫的具體操作,下面通過一個例子說明鏈接遠程表和建立記錄集對象的方法。

  首先建立一個新工程,在窗體上畫5個命令按鈕,1個數(shù)據(jù)控件和1個數(shù)據(jù)網(wǎng)格控件(dbgrid)。各對象的屬性設(shè)置見表1。

表1窗體1對象屬性設(shè)置
-align="middle"width="33">對象->-align="middle"width="33">標題(caption)->-align="middle"width="34">名稱(name)->-width="33">窗體->-width="33">遠程數(shù)據(jù)訪問->-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">結(jié)束->-width="34">cmdend->-width="33">數(shù)據(jù)控件->-width="33">->-width="34">data1->-width="33">數(shù)據(jù)網(wǎng)格->-width="33">->-width="34">dbgrid1->

其中dbgrid1中的datasource屬性設(shè)為data1,命令按鈕2,3,4的visible屬性設(shè)為false。

三、應(yīng)用舉例

編寫如下事件過程:


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'事務(wù)處理

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'結(jié)束應(yīng)用程序

endsub

privatesubcmdmodify_click()

dbgrid1.allowupdate=true'允許修改

endsub

privatevsubcmdlink_click()

form1.hide

form2.show

endsub

privatesubdbgrid1_aftercolupdate(byvalcolindexasinteger)

'數(shù)據(jù)修改后觸發(fā)該事件

onerrorgotoerr1

data1.refresh

err1:

selectcaseerr

case0

response=0

caseelse

exitsub

endselect

endsub

privatesubdbgrid1_beforecolupdate

(byvalcolindexasinteger,oldvalueasvariant,cancelasinteger)

'數(shù)據(jù)修改前觸發(fā)該事件

onerrorgotoerrhandler:

begintrans

ifmsgbox("確實要修改這一內(nèi)容?",vbquestion vbyesno)=vbyesthen

committrans

else

rollback

data1.refresh

endif

errhandler:

selectcaseerr

case0

response=0

caseelse

msgbox(error)

exitsub

endselect

endsub

privatesubform_load()

'在窗體裝入時,網(wǎng)格中的數(shù)據(jù)不可添加,修改

dbgrid1.allowaddnew=false

dbgrid1.allowupdate=false

endsub

privatesubform_resize()

onerrorresumenext

'當窗體調(diào)整時會調(diào)整網(wǎng)格

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

'本地數(shù)據(jù)庫名及路徑

linktdfname=text3.text

'本地數(shù)據(jù)庫中新建的鏈接遠程表的表名

strcn=strrodb'連接字符串

strtdf=combo1.text'指定遠程數(shù)據(jù)庫中要訪問的表

'調(diào)用linktable過程

calllinktable(strdb,strrodb,strcn,strtdf,linktdfname)

'調(diào)用rst_display過程

callrst_display(strdb,linktdfname,form1)

form2.hide

form1.show

form1.caption="遠程數(shù)據(jù):" 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'指定遠程數(shù)據(jù)庫名及路徑

setrodbs=opendatabase(strrodb)'打開遠程數(shù)據(jù)庫

'刪除combo1中的內(nèi)容

ifcombo1.listcount>=1then

fori=combo1.listcount-1to0step-1

combo1.removeitemi

nexti

endif

'把數(shù)據(jù)庫中的表名加到combo1中

fori=0torodbs.tabledefs.count-1

combo1.additemrodbs.tabledefs(i).name

nexti

endsub

->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍林郭勒市| 海兴县| 尼玛县| 万山特区| 新巴尔虎左旗| 汾西县| 盘山县| 普宁市| 安乡县| 延川县| 微博| 龙泉市| 邓州市| 兴文县| 永修县| 平度市| 渭南市| 南充市| 青海省| 惠东县| 崇礼县| 安康市| 灵璧县| 兰坪| 中山市| 海城市| 平舆县| 岳普湖县| 嘉义县| 平乐县| 成安县| 宝坻区| 同仁县| 旌德县| 江城| 游戏| 营口市| 沙湾县| 嘉禾县| 涿州市| 武义县|