正在阅读:VB数据库数据的选项录入及增减与编辑之四VB数据库数据的选项录入及增减与编辑之四

2004-02-14 09:34 出处:PConline 作者:白莉 杨喜中 责任编辑:zwg
3 数据的选项录入、选项增减及选项编辑   有些字段的值域较小且相对固定,但会有一定的变化,如“省市”字段会产生变化,如增设一个省或市,撤县设市等等,程序除提供一个合法的基本的选项框供用户选择外,还应允许用户对这个基本的选项框进行增减或编辑。下面的程序实现了此功能,用户双击表单则可对选项框进行增减和编辑,完成后再双击表单关闭编辑功能。   先建立一个数据库“c:myrand.mdb”,其表“rank”中加入一个字段“name”;再从工具箱中拖入一个数据控件data2,一个数据绑定组合框dbcombol和数据绑定网格控件dbgrid1。属性设置为:(1)data2控件的:databasename属性设为“c:\myrand.mdb”,recordsource为“rank”;(2)dbcombo控件的:name设为dbcombo1,rowsource设为data2,listfiele设为“name”,datasource设为data1。datafield设为“name”;(3)dbgrid控件的:name设为dbgrid1,将allowaddnew、allowdelete、allowupdate均设为true, datasource设为data2。 程序代码如下: option explicit dim last as string dim dd as boolean private sub form-activate() dim mark as variant mark=data1.recordset.bookmark data1.recordset.movelast last=data1.recordset("name") data1.recordset.bookmark=mark text1.visible=true dbcombol.visible=false dbgrid1.visible=false end sub private sub form-dblclick() ’双击表单打开或关闭选项增减和选项编辑功能 static dd as boolean dd=not dd ’第一次双击打开编辑功能第二次双击关闭编辑功能 if dd then dbgrid1.visible=true else dbgrid1.visible=false exit sub end if end sub private sub dbgrid1-dblclick() ’选择当前项后,再双击删除当前记录选项 data2.recordset.delete dbcombol.refresh dbgrid1.refresh end sub private sub dbgrid1-lostfocus() dbcombol.refresh ’刷新dbcombol end sub private sub command1-click(index as integer) dim i as integer select case index case0’addnew data1.recordset.addnew dbcombol.setfocus dbcombol.visible=true text1.visible=false case1’edit data1.recordset.edit text1.setfocus dbcombol.visible=false text1.visible=true case2’giveup data1.recordset.cance1update data1.refresh dbcombol.visible=false text1.visible=true case3’save data1.recordset. update data1.recordset.movelast last=data1.recordset("name") data1.refresh dbcombol.visible=false text1.visible=true case4’delete data1.recordset.delete data1.refresh case5’end end end select end sub private sub dbcombol-keydown (keycode as integer,shift as integer) if shift=2 then ’按下ctrl-key复制上条记录中的同名字段的内容 if data1.recordset.editmode=dbeditinprogress or data1.recordset.editmode=dbeditadd then dbcombol.text=last end if end if end sub% private sub text1-keydown(keycode as integer,shift as integer) if shift=2 then ’按下ctrl-key复制上条记录中的同名字段的内容 if data1.recordset.editmode=dbeditinprogress or data1.recordset.editmode=dbeditadd then text1.text=last end if end if end sub   通过上述方法使录入速度进一步得到提高,使用户的功效达到事半功倍的效果。

关注我们

最新资讯离线随时看 聊天吐槽赢奖品