Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

寻一个用于显示记录集的通用窗体的办法

sosopain  发表于:2009-02-08 01:11:30  
复制

我有很多个记录集,比如从excel表里获得的数据, 网上下载的数据,自己凭空生成的记录集, 等等。。。。想做一个通用的数据表窗体,自动根据绑定的记录集来显示其内容。

 

由于access无法动态生成控件(或者我不知道?), 现在只有两个思路,

 

1. 预先建立好一大堆文本框,根据记录集的fields性质改变文本框的属性从来达到动态显示的目的。 (如果字段数量超过文本框控件就无法实现)

2. 用spreadsheet。(做起来麻烦)

 

求有没有更好的办法?用最小编程量最少控件能达到这个目的阿?

 

 

 

 

 

Top
ACMAIN.CHM 发表于:2009-02-08 09:53:52

用 MSHFlexGrid 控件。

 

但我会选择第一种方法,在窗体上建上256个文本框。根据recordset.fields结果在程序中确定显示多少个就行了。

 



sosopain 发表于:2009-02-08 11:12:05

mshflexgird的其他功能没有数据表强大。。特别是到了2007, 数据表视图的排序,筛选功能 能减少很多编程的功夫呢。。

 

。。有没有啥方法能一次性建立256个文本框阿?。。一个一个的拖。。有点麻烦呢。。



trynew 发表于:2009-02-09 12:11:54
直接使用查询作为子窗体,再用代码更改查询的SQL语句就是了。

sosopain 发表于:2009-02-09 13:51:21

怎么把查询和ado记录集关联起来?



trynew 发表于:2009-02-09 14:48:25

那就不要读到ADO记录集中,把查询语句直接写到查询中就可以了,用查询可方便的显示修改其他格式的数据源,如excel等的,为什么还要用ado呢?

 

点击下载此附件

(把excel文件解压的c盘根目录)

另外,建多个文本框可以使用复制粘贴,一变二,二变四,四变八。。。。。。很快就成250了。数据表视图又不管文本框的大小和位置的。



sosopain 发表于:2009-02-09 16:31:05

有一些是不方便建立到查询去的..比如说从网上下载的数据.参考我的文章,http://www.accessoft.com/bbs/showtopic.asp?id=3382, 这类情况下. 数据库是不存在对应的基础表.

 

我还有些基础数据是以xml形式存在表字段里面..检索出来的特定元素也是直接拼接成了ado记录集.并无直接的表对应.

 

不过你提供给我一个思路, 可以想办法把ado保存成一个临时表, 在交互状态下对系统资源影响也不大.

 

有没有办法能把ado直接保存成表? 

 

 

 

 



sosopain 发表于:2009-02-10 23:54:37

问题解决. 目前还是用修改textbox来实现..

 

学了两个经验,  和各位分享

 

1.修改数据表列标题需要用 textbox.properties("DatasheetCaption") '帮助文件里面都没有这个属性~~不知道微软干啥去了~!!.. 而且不能用 textbox.datasheetcatpion

2.自动列宽, textbox.columnwidth = -2    '记着是-2哈

 

 

 



总记录:7篇  页次:1/1 9 1 :