分享
 
 
 

access 如何解决组合框无法满足大量数据的选择问题?

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

如何解决组合框无法满足大量数据的选择问题?

问题:

Access里面有组合框,可以很快地从多行记录中选择所需要的数据。但是如果记录超过1000-2000呢?选择就非常不方便了。我该怎么办?

回答:

其实很多数据都可以分类(分层)来选择,而且我们可以预先筛选数据。

以下这个示例就是用重复打开同一个窗体类来完成多层次数据的选择。

当然,还包括预先筛选数据功能。

在阅读本文前请先参考:

《新手来看:如何设计表结构便于treeview显示?》

http://access911.net/index.asp?board=4&recordid=75FABE1E12DC

一文,以了解如何定义数据表结构可以方便的分类并显示。

并阅读:

《如何将一个窗体重复打开2遍,并且每一遍打开的窗体显示不同的数据?》

http://access911.net/index.asp?board=4&recordid=72FAB11E15DC

一文,以了解 ACCESS 中一个 FORM 其实就是一个类

好了,现在开始:

1、建立一个窗体(testForm),里面有一个文本框(text0),一个按钮(Command2)。

2、建立一个窗体(selectForm),里面有一个列表框(list0)。

3、在testForm中的文本框的“更新后”事件中写入以下代码以打开品名选择窗体(selectForm),并对其中的列表框(list0)的行来源(RowSource)进行赋值。

Private Sub Text0_AfterUpdate()

DoCmd.OpenForm "selectform"

'这行代码就实现了BTYPE表的模糊检索,使用的是 WHERE 子句中的 LIKE 关键字进行通配

Forms("selectform").List0.RowSource = "SELECT btype.soncount, btype.UserCode, btype.FullName, btype.typeId FROM btype WHERE btype.fullname like '*" & Text0.Value & "*' "

End Sub

4、在testForm中的命令按钮的“单击”事件中写入以下代码以打开品名选择窗体,按分类检索

5、然后再在testForm中输入以下代码以完成多次打开窗体本身并显示子类中数据的功能。

为了能够使代码重复利用,写了两个通用过程

Option Compare Database

Dim f

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

'先设定窗体的“键预览”属性为“是”

'本过程将加快你的输入速度

'如果按 ESCAPE 键,就关闭窗体

If KeyCode = vbKeyEscape Then

closeAllSelectForm "SelectForm"

End If

End Sub

Private Sub List0_DblClick(Cancel As Integer)

checkYouSelect

End Sub

Private Sub List0_KeyPress(KeyAscii As Integer)

'本过程实现全键盘操作

If KeyAscii = 13 Then

checkYouSelect

End If

End Sub

Sub closeAllSelectForm(strFormName As String)

'通用过程1

'本过程用来关闭所有的指定名称的窗体

For Each objForm In Forms

If objForm.Name = strFormName Then

DoCmd.Close acForm, objForm.Name

End If

Next objForm

End Sub

Sub checkYouSelect()

'通用过程2

'检测你的选择

'如果发现 suncount 列为 0(表示没有下一层了)

'就可以把你选定的产品名称放到文本框中了

On Error Resume Next

Set f = New Form_SelectForm

Dim objForm As Form

If List0.Column(0) = 0 Then

Forms("testform").Text0.Value = List0.Column(2)

closeAllSelectForm "SelectForm"

Else

f.Visible = True

f.List0.RowSource = "SELECT btype.soncount, btype.UserCode, btype.FullName, btype.typeId FROM btype WHERE parid='" & List0.Value & "'"

End If

End Sub

详细示例程序请参考:

http://www.access911.net/index.asp?board=8&recordid=77FAB71E

http://access911.net 站长收藏

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有