Office中国论坛/Access中国论坛

标题: [求助]问一个比较难的高级问题,高手请进! [打印本页]

作者: Sagittarius    时间: 2006-5-12 02:58
标题: [求助]问一个比较难的高级问题,高手请进!
我想用另外一个数据库中的一个窗体,作为当前数据库一个窗体的子窗体,是否可行? ?
作者: tz-chf    时间: 2006-5-12 04:01
不行
作者: 一点通    时间: 2006-5-12 04:37
无意义
作者: Sagittarius    时间: 2006-5-12 05:01
谢谢两位,起码知道不行了。似乎不行就是因为微软不提供这项功能.有没有更详细的不行的解说?

一点通是不是道士阿[em43],为什么没有意义?我觉得意义重大啊.
作者: 一点通    时间: 2006-5-12 05:44
因为窗体在用户中是不可改变的,如果你是开发者可以导入就行了,并不会随时间的改变而改变,有意义的是来自表的数据,
作者: wuaza    时间: 2006-5-12 05:50
从没见过这种应用。

难道就不能放在一个数据库里?
作者: sunhlin    时间: 2006-5-12 14:05
用ADO吧,见一个临时表把需要的数据导入就行了
作者: Sagittarius    时间: 2006-5-12 22:28
谢谢大家的热心a。大家对我的问题好像有点误解。见谅,是我说的不明白,可能误导了大家。[em35]

我的实际情况是多用户操作,用户可以根据自己的需要更改窗体;当管理员设定一个需要的样式后,其他用户的窗体也统一改变,所以需要一个公共子窗体。而access 又不能做像dll文件的通用窗体,我只好用多库的方式。这就是我的真实意图,而不是针对数据。
作者: 一点通    时间: 2006-5-12 22:35
拆分前后台,前台数据库可做成个性化的
作者: Sagittarius    时间: 2006-5-12 22:52
已经拆分了。看样子还是没有理解我说的模糊语言。

我要的是改变多个前台数据库中的窗体,这些前台数据库都用到一个相同的子窗体。我希望在一个前台更改这个子窗体后,所有前台数据库的子窗体都同时更改。所以想到公用子窗体,就像公用模块一样。
作者: andymark    时间: 2006-5-12 23:18
楼主是想做一个更新的程序吧(更新的子窗体),可以试试下面的方法

在打开程序时检查与存放在服务器的子窗体进行对比,如果子窗体的修改日期小于服务器存放的

子窗体的修改日期,即delete本机的子窗体,并把服务器的子窗体copy或导入
作者: 1934    时间: 2006-5-13 00:10
fdhgfh
作者: Sagittarius    时间: 2006-5-13 00:16
3Q andymark.你的思路非常贴近我的需求。但是好像我认为有几个问题需要解决:

1、 多用户操作,以谁为准的问题。因为有更改子窗体权限的用户,未必在服务器上(当然,这个可以变通解决),而且如果多个用户具有修改权限的话,就需要历遍所有用户的子窗体,这样又需要有额外的设计。

2、这是一个常用的窗体,每次打开使用时都检查更新,如果要更新,就会影响进程。所以我想每次修改都一劳永逸。

3、更重要的是,如果每个机器上的时间(我指的是日期,有的用户的时间还是1999年)设定如果不一样,就会出错。当然,再去标准化所有用户的时间也是可行的,这又要额外的设计。

所以,如果能做到公用子窗体最好了,因为vb可以实现类似的功能。但是,现在看来好像此路不通阿。

所以,你的思路弥足珍贵啊,非常感谢。不出意外,就会用这个曲径通幽,新颖独到的方法了。(这个方法,安装更新程序最很适合了)


作者: zxzx2733    时间: 2006-5-13 00:45
以下是引用Sagittarius在2006-5-12 16:16:00的发言:


所以,如果能做到公用子窗体最好了,因为vb可以实现类似的功能。但是,现在看来好像此路不通阿。

如果子窗体没有使用代码管理输入功能,可考虑直接使用查询或表作数据源(不用窗体对象的子窗体),随你在后台去改表或查询了。

在主窗体加载或打开事件中写下:

Me.子窗体.SourceObject = "查询.查询名"

Me.子窗体.SourceObject = "表.表名"
作者: Sagittarius    时间: 2006-5-13 00:53
zxzx2733的方法不错,但不适合我,因为我的子窗体里面含有用户设定修改的控件。而这些控件正是我要求公用的部分。anyway,3ks.[em27]
作者: 一点通    时间: 2006-5-13 01:02
我觉得应该要学会变通,不要走入死胡同
作者: hi-wzj    时间: 2006-5-13 01:26
不是很懂您的需求,最好将程序上传,再附上说明会比较好。

为什么需要用户定制,管理员又有权限覆盖?

覆盖后如何保证用户定制?用户重新设置?不太明白。
作者: Sagittarius    时间: 2006-5-13 02:15
程序太大,尝试打包上传未果;关联又多,切割也需要时间。我就重新整理一下问题,希望这次能说得条例清楚,通俗易懂:

1、程序要分发给n个局域网网络用户,共用一个后台数据库

2、程序中有一个主窗体:mainForm,这个主窗体包含一个子窗体sub

3、每个用户(如果有修改权限的话)都可以设定子窗体sub中的控件的个数(不是在设计视图下,而是用户选取一定的条件,程序自动设置,用户看不到进程和设计视图)

4、要求:在任何一个用户都可能修改窗体的情况下,保证每个用户都使用相同的窗体。

我原来的解决思路:

创建一个公用子窗体subform,每个用户修改时都对同一个sub修改。用户打开mainform时,都用sub作为mainform的子窗体,这样就能保证使用了相同的窗体了。

所以问题就落在:如何创建一个公用子窗体。

其实实质问题就是: 4、要求:在任何一个用户都可能修改窗体的情况下,保证每个用户都使用相同的窗体。

[em01]

[此贴子已经被作者于2006-5-16 12:19:54编辑过]


作者: sgrshh29    时间: 2006-5-13 03:01
11楼的办法正好能解决你的问题.最好在服务器上的数据库设置这样的功能,一旦子窗体有修改.也就是当子窗体被修改后,会由服务器向用户自动发出信息,同时更新用户的子窗体.
作者: Sagittarius    时间: 2006-5-13 07:59
sgrshh29的办法精妙,正好我也曾做了个即时通讯系统,用在这儿最合适了.

唯一遗憾的是:更改子窗体的运行有点费时。但无论如何变通的方法行得通阿。

正如一点通版主所提醒-我好像走了死胡同了

问题总算有弄清醒些了,所以感谢一点通,anydmarksgrshh29,zxzx2733 和hi-wzj  版主,感谢各位大虾的思路和热心,和所有关注本贴的朋友。没办法请大家喝酒阿,哈哈。

谢谢,认真地。
作者: hi-wzj    时间: 2006-5-13 21:10
您的意思我明白了。您可以这样来做。

将子窗体的有可能改变的各参数保存在服务器的表里,客户端加载窗体时读取服务器端的参数表来格式化窗体。

更改窗体的样式就传化为向表中写数据了。
作者: fuyvn    时间: 2006-5-14 01:01
我只試過.   調用 窗體可以成功. 可以打開.

但 將其做為子窗體, 沒有成功過.




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