Office中国论坛/Access中国论坛

标题: 不定列数动态构造的查询怎样在窗体中以数据表显示? [打印本页]

作者: chaosheng    时间: 2011-8-21 10:11
标题: 不定列数动态构造的查询怎样在窗体中以数据表显示?
请问大家,谢谢.
用代码动态构造的不定列数的查询的结果要怎样在窗体中以数据表显示?或是用其它方式显示也好.
作者: roych    时间: 2011-8-21 13:04
这个……基本上很麻烦,不过你可以参考下以下帖子:一窗多用,减少窗体设计麻烦
作者: yehf    时间: 2011-8-22 16:47
用列表框来做会比较容易
作者: todaynew    时间: 2011-8-22 16:51
按yehf 同志意见办
作者: chaosheng    时间: 2011-8-23 09:34
多谢各位.
列表框是不错,但列宽的调节有点麻烦.
作者: aslxt    时间: 2011-8-23 11:38
标题: SourceObject
本帖最后由 aslxt 于 2011-8-23 11:54 编辑

用子窗体有问题吗?
在主窗体中新建一个子窗体,运行的时候再设置子窗体的SourceObject,为什么不用呢?
作者: aslxt    时间: 2011-8-23 12:01
[attach]46474[/attach]干脆再送一个实例供你参考吧!

作者: aslxt    时间: 2011-8-23 12:06
本帖最后由 aslxt 于 2011-8-23 12:14 编辑

当然,如果你要动态创建查询,那就在查询构建完后,再设置:
Me.Child9.SourceObject = "查询.查询名“
由此引申的问题是:
(为了防止用户更改数据)如何设置子窗体的只读属性?
[attach]46476[/attach]
如图,尽管子窗体实际上不能修改(通过设置子窗体的【是否锁定】=”是“),仍然从导航按钮看到常规上理解为可以新增记录的那个”*“
作者: aslxt    时间: 2011-8-23 12:32
不建议把这种方法用在需要录入数据的窗体来节约窗体的使用!因为子窗体的数据源是动态的,要设置数据录入的规则狠狠狠狠麻烦。
所有显示查询数据结果的窗体,都可以用这个方法来节约窗体的使用。
作者: aslxt    时间: 2011-8-23 12:39
另外,要节约查询对象的使用,可以用表来记录SQL语法的,然后只保留一个可以叫做“动态查询”的查询。
要查询不同的数据,可调用表中的某行记录的SQL语法,来动态地修改“动态查询”的构造,然后再用附件中的子窗体(设置SourceObject属性)的方法。
这样查询数据的窗体、查询对象就各自只有一个,很节约吧!
作者: chaosheng    时间: 2011-8-23 13:31
非常感谢 aslxt !
非常好的处理方法!
作者: aslxt    时间: 2011-8-23 15:33
chaosheng 发表于 2011-8-23 13:31
非常感谢 aslxt !
非常好的处理方法!

互相学习,共同进步!
作者: cjnt007    时间: 2011-8-27 18:20
with child0.form
  for each ctr in .controls
    ctr.locked=true
    ctr.enabled=false
  next
end with
虽然用查询作为子窗体的SourceObject后,不好显式地设置数据表窗体中控件的属性,但可以使用上面的代码设置数据表每个单元格不可操作。
作者: cjnt007    时间: 2011-8-27 18:21
另外还可通过代码设置子窗体form对象的添加数据属性为false




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3