Access交流中心

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

将子窗体中记录的值输出到主窗体的三个文本框中的问题

雪域豪情  发表于:2014-12-18 16:37:22  
复制

access主窗体里有一子窗体,子窗体数据源为一个表,有多个字段,现在想在子窗体显示的记录中选择一个记录,然后将该条记录的三个字段值输出到主窗体的三个文本框中。

 我已经搜了9页的帖子,都没有直接的,只好提问了。

谢谢先!

 

Top
cspa 发表于:2014-12-18 23:30:43
是否你要的结果?点击下载

雪域豪情 发表于:2014-12-19 10:52:18
太好了,就是这样

雪域豪情 发表于:2014-12-19 10:54:22
谢谢cspa大神

雪域豪情 发表于:2014-12-19 11:57:06
追问一下:如果不要初始赋值,就是说只有我鼠标点了才赋值可以吗?

cspa 发表于:2014-12-19 17:09:23
这个问题先留给你思考下,希望你能自己解决。我过2天再公布答案。😏

雪域豪情 发表于:2014-12-21 19:15:10
cspa,我刚换office2010,有点不熟,还是没搞定啊


cspa 发表于:2014-12-21 21:26:46
 

好吧,那就讨论下你的“如果不要初始赋值,就是说只有我鼠标点了才赋值可以吗?”这个问题。

此问题的形成原因是当窗体打开时,即会触发子窗体的“成为当前”事件,因为默认的子窗体记录集指针会定位在第一条记录,所以在主窗体上的相关字段就会显示出子窗体第一条记录的相应数据。

你提出的“不要初始赋值”即可理解为是“打开窗体时不赋值”,也可处理成“打开窗体时将已赋的值删除”或者“赋一个空值(null)”。按照这个思路起码有3个解决方法:

1、  最简单的方法是加一个语句,让程序在打开窗体时将子窗体记录集指针指向一个新记录,实际上即是“打开窗体时赋一个空值(null)”。但此时子窗体会跳转到显示最后几条记录,看上去不太好看。更重要的是如果此时子窗体的“允许数据添加”属性设置为“否”将会提示错误。见附件中的方法1.mdb

2、  在主窗体的“打开”事件中增加语句代码,将子窗体已赋的值删除,使界面看上去好像“没有初始赋值”。也可实现你的要求。见附件中的方法2.mdb

3、  判断当前子窗体的状态是“打开”还是“已经打开”,如果是“打开”就不让子窗体的“成为当前”事件中的代码执行,也就是“打开窗体时不赋值”。如果是“已经打开”就正常触发子窗体的“成为当前”事件,执行其中的代码。即可实现你的要求。见附件中的方法3.mdb

其实还可能有其他的方法,也许你自己可以琢磨出更符合你需求的方法。

点击下载附件



雪域豪情 发表于:2014-12-22 11:18:50

谢谢cspa这么耐心的解释,真的很感动,让我学到不少。

是我没讲清楚,现在我r把文件上传上来,麻烦帮看下。我的目的是在“发货清单录入”窗体中点击“客户简称”,子窗体出来相应的产品列表,点击列表中的记录实现添加。

我是工厂职员,只是想开发个小系统自己用,不是专业的,见笑。



销售系统1



cspa 发表于:2014-12-22 12:01:47

我用的是2003,打不开accdb格式的文件,请发个mdb格式的上来。



雪域豪情 发表于:2014-12-22 12:46:02
cspa 发表于:2014-12-22 18:03:15

供参考点击下载

另外,建议你的主窗体中需要从子窗体取值的字段不要用绑定字段,采用非绑定字段(像现在修改的这样),输入完成后再用确定按钮提交到表中。这样比较合理。



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