Access为子窗体设置数据源.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Access为子窗体设置数据源 2014-05-13 19:58 coleev | 分类:数据库DB | 浏览561次 设有一个数据库Db,其有窗体frm,表tbl, frm中有一个子窗体控件chd; ******************************************************************以上是前置条件 LZ已尝试在frm的【打开】事件中对一个DAO.Recordset对象的数据源设置为tbl的内容,形式如下 Dim SQL as String SQL=SELECT * FROM tbl Dim rs as DAO.Recordset Set rs=CurrentDb.OpenRecordset(SQL,dbopendynaset) 求解:如何将子窗体chd的数据源设置为这个rs的数据?因为考虑到动态灵活和数据安全,不愿意将chd直接和tbl绑定。 我有更好的答案 分享到: 2014-05-13 23:38 提问者采纳 Dim?SQL?as?String SQL=SELECT?*?FROM?tbl Dim?rs?as?DAO.Recordset Set?rs=CurrentDb.OpenRecordset(SQL,dbopendynaset) 补上后面这行代码即可将记录集与窗体绑定 Set?Me.chn.Form.Recordset=rs 其实DAO已经非常古老了。如果用下面的的代码将数据表与子窗体绑定将会更简便有效: Private?Sub?Form_Open(Cancel?As?Integer) Me.chn.Form.RecordSource?=?SELECT?*?FROM?tbl End?Sub 追问 3Q,目前只看到了DAO 但是,再请教一下:为毛还是报错啊,如图 回答 我给出的代码,已经测试过了。没问题的。 出错的原因有很多种可能,请将你出错的完整代码贴出来,我全面检查一下,如果有窗体的设计视图截图会更好一些。从表面上看可能是,控件名引用错误,例如,子窗体名称不正确等 追问 就是一个自己想到的问题 - 如果的神得空,可否用ADO示范一下,我追加分哦~ 回答 因为子窗体未绑定任何“源对象”,运行我的代码当然会报错。 问题可以这样解决 先创建一个窗体,取名ChldTest,里面添加相应数量的非绑定文本框(我加了3个非绑定文本框Text0,Text2,Text4),窗体数据源为空白,窗体默认视图为“数据表”。这个窗体将作为你的子窗体的“源对象” 具体见图 假设数据表“ABC” 有3个字段分别为A ,B,C 为你的主窗体添加下了打开事件过程即可 Private?Sub?Form_Open(Cancel?As?Integer) ????With?Me.Child0 ????????.SourceObject?=?Form.ChldTest???‘使用某个窗体作为子窗体的源对象 ????????.Form!Text0.ControlSource?=?A????’绑定字段 ????????.Form!Text2.ControlSource?=?B ????????.Form!Text4.ControlSource?=?C ????????.Form.RecordSource?=?select?*?from?ABC??绑定记录集 ????End?With End?Sub 当然如果使用数据表或预置的查询作为子窗体的源对象将会更加方便(无需设计子窗体),例如: Private?Sub?Form_Open(Cancel?As?Integer) ????With?Me.Child0 ????????.SourceObject?=?Table.ABC??使用表作为子窗体的源对象 ????End?With End?Sub 又或者预置一个查询1(select * from Tbl) Private?Sub?Form_Open(Cancel?As?Integer) ????With?Me.Child0 ????????.SourceObject?=?Query.查询1??使用查询作为子窗体的源对象 ????End?With End?Sub ?至 于ADO动态生成记录集(事先不知道要使用什么表、什么字段)然后将记录集与子窗体绑定(方法类似VB将DataGrid、MSHFLEXGRID控件与 记录集绑定),它需要编写大把大把的代码,不是百度分就可以打发的!事实上这种解决方案,是可以开发成第三方控件,做商业销售的。有兴趣的话自己研究吧, 技术上完全可行我这里就不提供了。

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档