ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3735|回复: 5

[求助] 如何复制主窗体和及其子窗体的详细记录

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-24 16:39 | 显示全部楼层 |阅读模式
请教各位老师:
我学着在"订单明细"窗口添加一个"复制"按钮,希望达到的效果是: 可以复制主窗体和子窗体所有记录成为新的内容,参考了一下MS的例子,但不知道哪里出了问题,不成功.提示"这个集合中找不到此项目"

Microsoft 提供的编程示例只用于说明不附带任何明示或暗示保证。这包括,但不限于对适销性或针对特定用途的适用性的暗示的担保。本文假定您熟悉演示了正在使用的编程语言以及用于创建和调试过程的工具。Microsoft 支持工程师可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您的具体要求。要重复的主窗体的记录和相关联的子窗体的详细信息记录,必须自动完成以下过程:
重复的主窗体记录。
设置复制的主窗体记录中的一个唯一的主关键字字段值。如果主键是自动编号字段,这不需要。
保存重复的主窗体记录。
创建和运行追加查询的选择具有源主窗体记录的主关键字值的明细数据记录,将回到使用主键值从复制的主窗体的记录的详细信息表中追加这些记录。
很重要的保存复制的主窗体记录,以便与追加查询正在复制的明细数据记录到相关联的主窗体记录。这样就避免了参照完整性问题。

若要重复的主窗体的记录和相关联的子窗体的详细信息记录,请按照下列步骤操作:

注意: 如果您按照这些步骤在此示例中,您修改示例数据库 Northwind.mdb。您可能希望备份 Northwind.mdb 文件并在该数据库的副本,请按照下列步骤。


启动 Access 并打开示例数据库 Northwind.mdb。
在 设计 视图中打开 订单 窗体。
添加一个新的命令按钮并设置该命令按钮的属性,如下所示:
名称: btnDuplicate
标题: 复制

单击 生成器 按钮右边的命令按钮的 OnClick 属性,然后单击 代码生成器,然后键入下面的过程:
注: 该过程的第一个和最后一个行由 Access 为您创建。
Private Sub btnDuplicate_Click ()
Dim dbs As DAO.Database, Rst As DAO.Recordset
Dim F As Form

' Return Database variable pointing to current database.
Set dbs = CurrentDb
Set Rst = Me.RecordsetClone

On Error GoTo Err_btnDuplicate_Click

' Tag property to be used later by the append query.
Me.Tag = Me![OrderID]

' Add new record to end of Recordset object.
With Rst
   .AddNew
      !CustomerID = Me!CustomerID
      !EmployeeID = Me!EmployeeID
      !OrderDate = Me!OrderDate
      !RequiredDate = Me!RequiredDate
      !ShippedDate = Me!ShippedDate
      !ShipVia = Me!ShipVia
      !Freight = Me!Freight
      !ShipName = Me!ShipName
      !ShipAddress = Me!ShipAddress
      !ShipCity = Me!ShipCity
      !ShipRegion = Me!ShipRegion
      !ShipPostalCode = Me!ShipPostalCode
      !ShipCountry = Me!ShipCountry
   .Update                     ' Save changes.
   .Move 0, .LastModified
End With
Me.Bookmark = Rst.Bookmark

' Run the Duplicate Order Details append query which selects all
' detail records that have the OrderID stored in the form's
' Tag property and appends them back to the detail table with
' the OrderID of the duplicated main form record.

DoCmd.SetWarnings False
DoCmd.OpenQuery "Duplicate Order Details"
DoCmd.SetWarnings True

'Requery the subform to display the newly appended records.
Me![Orders Subform].Requery

Exit_btnduplicate_Click:
Exit Sub

Err_btnDuplicate_Click:
MsgBox Error$
Resume Exit_btnduplicate_Click:
End Sub
                                       

在 工具 菜单上单击 引用,然后单击以选中 Microsoft DAO 3.6 对象库。单击 确定。
在 文件 菜单上单击 关闭并返回到 Microsoft Access。
保存 订单 窗体并将其关闭。
创建一个基于 订单明细 表的新查询。
在 查询 菜单上,单击 更新查询。在 追加 对话框中选择 表名称 框中的 订单详细信息,然后单击 确定。
双击 订单明细 字段列表,以在列表中选择的所有字段的标题栏。将字段拖动到 QBE 网格的第一列。
从 订单 id 列中的 追加到 行中删除 订单 id 和 条件 行中键入以下行:
[窗体]! [订单] [标记]
此条件选择其中的 订单 id 是 订单 窗体的 标记 属性,源 订单 id 中找到值的明细数据记录。
在一个空的 QBE 网格列中创建新的列 字段 行中键入以下行:
NewOrderID: CLng([Forms]![Orders]![OrderID])
在新列中键入以下行在 追加到 行中:
[订单 id]
然后将查询另存为 重复订单明细,并将其关闭。

这确保了确认所选的详细信息返回到 订单明细 表追加的记录,将 订单 id 字段设为的在新的 订单 id 重复,主窗体 订单 记录。

罗斯文 2007.part01.rar

283.2 KB, 下载次数: 14

罗斯文 2007.part02.rar

283.2 KB, 下载次数: 12

罗斯文 2007.part03.rar

283.2 KB, 下载次数: 11

罗斯文 2007.part04.rar

283.2 KB, 下载次数: 11

罗斯文 2007.part05.rar

283.2 KB, 下载次数: 11

罗斯文 2007.part06.rar

283.2 KB, 下载次数: 21

罗斯文 2007.part07.rar

53.91 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2011-3-25 18:05 | 显示全部楼层

〖Excel Home友情提示〗

   

很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!

通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是

1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。


为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-26 09:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请问有哪位老师能抽空指导一下? 或许哪里有这样的例子让学生参考,谢谢.

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-28 09:27 | 显示全部楼层
请问哪位师兄师姐抽时间帮忙指导一下.谢谢.

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-4-3 16:15 | 显示全部楼层
我是初学者, 请问有哪位老师可以给个例子我参考一下,谢谢.

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-4 21:36 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 17:00 , Processed in 0.022277 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表