![73b5267dc8bc56428a564a16fc497e16.gif](https://i-blog.csdnimg.cn/blog_migrate/fe278a4a69c6348dc004131faa082b94.gif)
使用组合框选择输入数据时,若行数太多就不便选择,可使用自定义的弹出窗体来选择,使操作人性化。
在数据库录入中,经常要使用组合框录入。一方面是方便录入,另一方面是更好地规范录入。但是,当组合框的下拉行数很多(例如300+)的时候,就会难于找到需要的数据行,导致用户录入体验不理想。这里提供一种方法,使用自定义的弹出式窗体给录入用户选择需要的数据,可以在弹出窗体中进行排序、筛选…直到找到需要的数据。
![4ced64f85d33f9e6c8815291535ec241.png](https://i-blog.csdnimg.cn/blog_migrate/2bb7a1018990738cfb926059319224ad.png)
在屏幕左下角的
如附件实例,在《学生登记表》窗体中,“进入”组合框(如:就读学校),就会弹出弹窗,给你选择适合的数据。
Private Sub 就读学校_Enter()
就读学校 = LusSelect("select 就读学校 from 学生登记表 group by 就读学校 order by 就读学校", 1, Me.就读学校)
End Sub
LusSelect函数能够根据你提供的三个参数,自动生成弹窗所需要的查询(USys选项查询)、窗体(USys选择),自动打开弹窗,你(可以进行排序、筛选、模糊查找…直到找到需要的数据)选中数据,并点击弹窗中的“确定”按钮后,弹窗关闭,选中的值就填写在组合框(如:就读学校)中。
第一个参数:指定如何查询数据的SQL语句,要符合查询对象的SQL语法,文本类型。实例中为"select 就读学校 from 学生登记表 group by 就读学校 order by 就读学校"
第二个参数:指定要返回的列(按照第一个参数指定的列的顺序),Integer类型,数据范围1~N,N为第一个参数的查询返回值的总列数。
第三个参数:Variant类型。传递组合框的现有值给弹窗进行定位,便于用户直观了解现有的值。可以为 null。
![4ced64f85d33f9e6c8815291535ec241.png](https://i-blog.csdnimg.cn/blog_migrate/2bb7a1018990738cfb926059319224ad.png)
![9079d78a80bc923fede941374cd9bab0.png](https://i-blog.csdnimg.cn/blog_migrate/15c2b571f7da7a8994875f68103f8daf.png)
![e7fdc1a3aad0babb23458d501ca77eaf.png](https://i-blog.csdnimg.cn/blog_migrate/24c18711c24eec80aa06df48b38b2bcf.jpeg)
![4e6ba426a46734bfc9c7f901b37d4c3a.png](https://i-blog.csdnimg.cn/blog_migrate/fdfd44ae3ed31ee79766821467bca542.jpeg)
![8873b6295be835c7a1d4af77afdf0876.png](https://i-blog.csdnimg.cn/blog_migrate/489bd2c29e0df1733a792cf9baa6b525.jpeg)
![47fcb8041f3dac821dd5be2d4f5e4ccf.png](https://i-blog.csdnimg.cn/blog_migrate/8983918db4a5bcdea24f36c21eae92a1.jpeg)
![f034f0cc3ab172f27e12aaf95886b369.png](https://i-blog.csdnimg.cn/blog_migrate/0f7c0692b5edd9166fb6e54cc9ba5c10.png)