Office中国论坛/Access中国论坛

标题: [分享]新增记时自动复制上一记录的某些控件值 [打印本页]

作者: 海狸先生    时间: 2005-9-21 06:00
标题: [分享]新增记时自动复制上一记录的某些控件值
以下代码大量参考了911网站的代码

Public Sub CopyRecord(frm As Form, strControlName As String)

   

   On Error Resume Next

   Static j As Boolean

   Dim D, i As Long

   Set D = CreateObject("Scripting.Dictionary")

   Dim strSName() As String

   strSName = Split(strControlName, ";")

   If Not j And frm.NewRecord Then

      frm.Recordset.MoveLast

      j = True

      For i = 0 To UBound(strSName) - 1

         D.Add strSName(i), frm.Recordset(frm(strSName(i)).ControlSource).Value

      Next i

      DoCmd.GoToRecord , , acNewRec

      For i = 0 To UBound(strSName) - 1

         frm(strSName(i)).Value = D(strSName(i))

      Next i

      j = False

   End If

   Set D = Nothing

End Sub

用法,要在current事件中调用,注意是控件名,而不是字段名,并且最后的;号不要忘记加

Private Sub Form_Current()

   CopyRecord Me, "控件1;控件2;控件3;"

End Sub


作者: Grant    时间: 2005-9-21 07:07
这么好的东西怎么没人顶,下次把它隐藏算了,自己先顶.
作者: smartday    时间: 2005-9-21 15:50
不错,顶一下
作者: dasen    时间: 2005-9-21 16:08
多谢,学习中!
作者: zyz218    时间: 2005-9-21 21:42
好东东啊,,厉害Z!!!
作者: secowu    时间: 2005-9-21 22:57




  鲜花(99999999999999999999)  鸡蛋(-00000000000000000000000000000000000000000000)
作者: qhdzp516    时间: 2005-9-21 23:45
真是好东西谢谢海狸先生。[em09],顺便问一下,如何复制本条记录的某些控件值呢?

[此贴子已经被作者于2005-9-21 15:49:16编辑过]


作者: 海狸先生    时间: 2005-9-21 23:48
例如 你的 姓名字段是用 txt姓名 这个文本框控件显示,那么要复制姓名这个记录的话就引用 txt姓名 这个控件值
作者: qhdzp516    时间: 2005-9-21 23:59
我是个新手,如何写代码呢?真是麻烦了!
作者: 可乐可口    时间: 2005-9-22 00:21
的确是好东东这个和 默认值=dlast("字段名","表") 有什么不一样的地方
作者: 青青    时间: 2005-9-22 21:12
hao
作者: 海狸先生    时间: 2005-9-28 22:55
以下是引用可乐可口在2005-9-21 16:21:00的发言:



的确是好东东

这个和 默认值=dlast("字段名","表") 有什么不一样的地方

这个是所见即所得。。。也就是说始终重复上一记录,不管是否排序
作者: Stephenwu    时间: 2005-9-29 01:36
为什么我放在子窗体中不行呢? 是否我的理解有错? 我理解是子窗体中, 输入完上一行记录后,再输下一行记录时能直接复制上一行的记录, 为什么用Form_Current事件呢?本人是菜鸟! 见笑!
作者: LucasLynn    时间: 2005-9-29 01:43
以下是引用Stephenwu在2005-9-28 17:36:00的发言:



为什么我放在子窗体中不行呢?

是否我的理解有错? 我理解是子窗体中, 输入完上一行记录后,再输下一行记录时能直接复制上一行的记录, 为什么用Form_Current事件呢?

本人是菜鸟! 见笑!

你要把代码放在子窗体代码中,而不是主窗体代码中。
作者: Stephenwu    时间: 2005-9-29 17:18
你要把代码放在子窗体代码中,而不是主窗体代码中。本人确实放在子窗体代码中, 但我不明白Form_Current怎么可以激活"复制上一条记录"的

事件呢?
作者: LucasLynn    时间: 2005-9-29 17:31
以下是引用Stephenwu在2005-9-29 9:18:00的发言:



你要把代码放在子窗体代码中,而不是主窗体代码中。

本人确实放在子窗体代码中, 但我不明白Form_Current怎么可以激活"复制上一条记录"的

事件呢?

Form_Current事件当选中一条一条记录时发生。
作者: nxjswt    时间: 2005-10-7 06:05
做个标记!新增记时自动复制上一记录的某些控件值

[em04]
作者: guqianfeng    时间: 2005-10-18 07:45
好东西不能沉了,顶
作者: okmijn    时间: 2005-11-10 16:50
好东西,最好给个现成的文件出来
作者: wmok    时间: 2005-11-10 16:53
收藏! 谢谢楼主公开!!
作者: kevinch    时间: 2005-11-10 18:20


好东西,最好给个现成的文件出来 同上,好东西不能忘记我们这些菜鸟呀![em01]
作者: zyz218    时间: 2005-11-10 22:23
[em01]好东东要顶的
作者: twostone    时间: 2005-11-16 23:19
能不能用在VB对数据库的操作中呢?
作者: huangyicai    时间: 2005-11-25 04:54
太好了,顶一下!
作者: cdwlove    时间: 2005-12-5 21:00
好东东,应该大家分享!!!
作者: Henry D. Sy    时间: 2007-6-24 09:06
为什么我只能看到一半
作者: ABCaccess    时间: 2008-6-1 16:50
谢谢你与大众分享
作者: xhbqt    时间: 2009-5-7 02:25
好贴,备下留用
作者: wskbm    时间: 2009-8-10 18:24
顶给需要的人




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