扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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
通过上述方法使录入速度进一步得到提高,使用户的功效达到事半功倍的效果。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者