设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1947|回复: 3
打印 上一主题 下一主题

[ADO/DAO] 【源码】使用VBA代码自动为所有表添加录入人 录入日期,更新人 更新日期字段-除系统表

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-7-1 10:01:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了记录数据最后修改人及最后的修改日期时间,通常我们在表中需要添加修改人及修改日期字段,但如果每个表都手工去添加这2个字段,的确是一件累人的事,使用VBA代码自动为所有表添加更新人 更新日期字段(除系统表外),大家也可再扩展一下,增加录入人 录入日期时间  以及是否删除等字段,也可根据需要将录入人 修改人员等的字段类型改为长整型。 详细代码如下:
  1. Private Sub Command0_Click()
  2. Dim tdf As TableDef
  3. Dim fld As DAO.Field
  4. Dim prp As DAO.Property
  5. Dim strFldName As String

  6. Dim blnHavUpdateMan As Boolean
  7. Dim blnHavUpdateDate As Boolean
  8. On Error Resume Next
  9. For Each tdf In CurrentDb.TableDefs
  10. If Left(tdf.Name, 4) <> "Msys" Then
  11.   Debug.Print tdf.Name
  12.   For Each fld In tdf.Fields
  13.     strFldName = fld.Name
  14.     '判断原来表中是否有更新人及更新日期字段
  15.     If strFldName = "FUpdateMan" Then
  16.        blnHavUpdateMan = True
  17.     End If
  18.    
  19.     If strFldName = "FUpdateDate" Then
  20.        blnHavUpdateDate = True
  21.     End If

  22.     If strFldName = "FUpdateMan" Then
  23.        fld.Type = dbLong
  24.        fld.Properties("Caption") = "修改人"
  25.        fld.Properties("Description") = "修改人"
  26.        fld.DefaultValue = 0
  27.     End If
  28.    
  29.    Next
  30.    
  31.    '没有才添加相应的字段
  32.    If blnHavUpdateMan = False Then
  33.        Set fld = tdf.CreateField()
  34.        fld.Name = "FUpdateMan"
  35.        fld.Type = dbText
  36.        fld.Size = 25
  37.        fld.Properties("Caption") = "修改人"
  38.        fld.Properties("Description") = "修改人"
  39.        fld.DefaultValue = ""
  40.        tdf.Fields.Append fld
  41.    
  42.    End If
  43.    
  44.    If blnHavUpdateMan = False Then
  45.        Set fld = tdf.CreateField()
  46.        fld.Name = "FUpdatedate"
  47.        fld.Type = dbDate
  48.         
  49.        fld.Properties("Caption") = "修改日期"
  50.        fld.Properties("Description") = "修改日期"
  51.        fld.DefaultValue = "date()"
  52.        tdf.Fields.Append fld
  53.    
  54.    End If
  55.    

  56. End If
  57. Next
  58. End Sub
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-7-1 10:35:54 | 只看该作者
我觉得,应该把链接表的情况考虑上。{:soso_e120:}

点击这里给我发消息

3#
 楼主| 发表于 2015-7-1 12:35:51 | 只看该作者
是的
回复

使用道具 举报

点击这里给我发消息

4#
发表于 2015-7-2 05:22:44 来自手机 | 只看该作者
不错,赞-一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 05:02 , Processed in 0.092356 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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