Office中国论坛/Access中国论坛

标题: 【源码】使用VBA代码自动为所有表添加录入人 录入日期,更新人 更新日期字段-除系统表 [打印本页]

作者: tmtony    时间: 2015-7-1 10:01
标题: 【源码】使用VBA代码自动为所有表添加录入人 录入日期,更新人 更新日期字段-除系统表
为了记录数据最后修改人及最后的修改日期时间,通常我们在表中需要添加修改人及修改日期字段,但如果每个表都手工去添加这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
复制代码



作者: roych    时间: 2015-7-1 10:35
我觉得,应该把链接表的情况考虑上。{:soso_e120:}
作者: tmtony    时间: 2015-7-1 12:35
是的
作者: zpy2    时间: 2015-7-2 05:22
不错,赞-一个




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