a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 74|回复: 0

[Access] 如何解决组合框无法满足大量数据的选择问题(1)

[复制链接]
发表于 2012-7-31 22:26:35 | 显示全部楼层 |阅读模式
如何解决组合框无法满足大量数据的选择问题(1)* H8 e$ q' L8 |, B) ]4 |- J5 M
问题: ) i7 A' M; g& s. y: j
  access里面有组合框,可以很快地从多行记录中选择所需要的数据。但是如果记录超过1000-2000呢?选择就非常不方便了。我该怎么办?
2 x4 P+ M  O8 i* k8 y; S  回答:6 _: P3 P8 p/ N" Q1 v1 a
  其实很多数据都可以分类(分层)来选择,而且我们可以预先筛选数据。. F1 O; H0 G; l8 m! N9 \
  以下这个示例就是用重复打开同一个窗体类来完成多层次数据的选择。
, o8 {: x+ \) M2 B* N' B  当然,还包括预先筛选数据功能。, \' p( y. N- t: T) h- K- X+ n, K: Y2 Q
  在阅读本文前请先参考:* X! u8 z1 P& H5 u$ k
  《新手来看:如何设计表结构便于treeview显示?》/ Z) e7 Z% ^) L# @  |+ ^
    一文,以了解如何定义数据表结构可以方便的分类并显示。( K' U) V% M4 A" ]; p
  并阅读:
% V7 W% c$ l& y& g  《如何将一个窗体重复打开2遍,并且每一遍打开的窗体显示不同的数据?》
8 R3 U; |7 Z- `8 Y6 x    一文,以了解 access 中一个 FORM 其实就是一个类  e9 _9 Q4 @- t6 a% g2 v4 K
  好了,现在开始:9 y+ c" c# b7 M
  1、建立一个窗体(testForm),里面有一个文本框(text0),一个按钮(Command2)。
6 E  E1 r: W3 }0 @2 E5 r+ k  2、建立一个窗体(selectForm),里面有一个列表框(list0)。
1 O. [, Q1 p- N! E  3、在testForm中的文本框的“更新后”事件中写入以下代码以打开品名选择窗体(selectForm),并对其中的列表框(list0)的行来源(RowSource)进行赋值。
, f! ?% N7 @% l- P  Private Sub Text0_AfterUpdate()% t3 e" _" T9 U% d# o* M
  DoCmd.OpenForm "selectform"
- K/ Y* g& `$ A  '这行代码就实现了BTYPE表的模糊检索,使用的是 WHERE 子句中的 LIKE 关键字进行通配# H: F$ s4 z6 d  k0 D9 f1 @
  Forms("selectform").List0.RowSource = "SELECT btype.soncount, btype.UserCode, btype.FullName, btype.typeId FROM btype WHERE btype.fullname like '*" & Text0.Value & "*' "7 S+ ?$ x" ^0 P  w, ^2 e
  End Sub
0 J5 {7 s2 x# t3 @. ^. \  4、在testForm中的命令按钮的“单击”事件中写入以下代码以打开品名选择窗体,按分类检索& m8 n  z! m4 C+ r
  5、然后再在testForm中输入以下代码以完成多次打开窗体本身并显示子类中数据的功能。
- U' D7 y; i4 U$ o  为了能够使代码重复利用,写了两个通用过程7 P; z7 l$ |# _& v. f8 D. }
  Option Compare Database
; v. L  n  \, u$ Y/ x9 ?6 q* U  Dim f
  ?; a( w* H' m- M  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)2 S* O# L& s! g; e, {/ T% t
  '先设定窗体的“键预览”属性为“是”# O& S0 ~; ?9 r) `/ l3 S8 Q& c6 R
  '本过程将加快你的输入速度
- b  H9 n( b& F7 d& t/ K5 o* r# \# V  '如果按 ESCAPE 键,就关闭窗体% K& o- v& b" _+ j7 G
  If KeyCode = vbKeyEscape Then
+ J9 q- z4 \# h4 j  closeAllSelectForm "SelectForm"
7 ^- g. D+ ]  \9 @4 \2 q* v: D  End If
% F* s6 w# R" s" M0 n  End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 09:56 , Processed in 0.192650 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表