在工作中,经常要为数据录入用户提供用户界面,数据录入工具用的比较多的,一是epidata,二是access。用epidata录入数据可以方便的对数据格式进行控制,但其只支持文本和数值、日期和其他几种变量类型,控件格式简单。access通过制作窗体可以制作用户录入界面,且支持的控件类型也非常多。 大家如果经常上网填写一些表单的话就会发现,当我们填写行政区划信息时,菜单会自动级联,如你填写北京市,会自定列出北京市的各个区。这个功能在epidata里就不好做,要做的话也只能用数字进行代替,但用access数据库的窗体就可以非常容易的实现。如下图: 如何利用access窗体制作行政区划菜单级联1 如何利用access窗体制作行政区划菜单级联2 通过制作这个数据录入窗体,用户就不会录错行政区划信息,保证数据录入的质量。详细的源码需要的话留下邮箱(没找到合适的网盘)。 用access窗体制作行政区划菜单级联,即选择省后,自动列出相应的市、选择市后列出相应的县,现在我们把问题进一步深入。在数据录入过程中,我们常需要对数据进行编码,也就是生成数据库的主键(ID),行政区划信息常常和其他编码信息结合来作为数据库的主键,因此,行政区划代码信息显得尤为重要。下面,我们来制作制作用户选择县后,自动生成行政区划代码的功能。
最终的效果如下: 用户选择前 用户选择后 下面介绍详细的制作过程: 首先在做好的行政区划窗体上,单击右键选择设计,进入窗体设计视图,点击文本框控件,在窗体里新建一个文本框,将其名称命名为“国标码”,并对其属性进行设置,将边框样式属性设为“透明”。 之后选择“县”控件,在这个控件的AfterUpdate()事件后,编写如下代码: Private Sub cboCounty_AfterUpdate() Dim newid As Variant newid = DLookup("[countyid]", "县", "[county] = " & "Forms!q!cboCounty") Text13.Value = newid End Sub 这里要解释下的是dlookup函数,DLookup 函数用于从指定记录集(一个域)获取特定字段的值,dlookup函数有三个参数,第一个参数为要查询显示字段,第二个参数为查询的表,第三个参数为查询字段。 |