Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

修改日志VBA代码

justinliao  发表于:2010-09-17 20:19:48  
复制

以下代码能不能写简单一些?另,以下红色字体代表啥意思?

具体请见附件点击下载此附件

 

Private Sub Form_BeforeUpdate(Cancel As Integer)

On Err GoTo TryNextC
    Dim MyForm As Form
    Dim ctl As Control
    Dim strUser As String
    Set MyForm = Screen.ActiveForm
    strUser = fOSUserName

' Set date and current user if form has been updated.
    MyForm!DiaryMemo = MyForm!DiaryMemo & Chr(13) & Chr(10) & "Changes made on " & Now & " by " & strUser & ";"
'------------------------------
' If new record
  If MyForm.NewRecord = True Then
    For Each ctl In MyForm.Controls
      Select Case ctl.ControlType
       Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox
       If ctl.Name = "DiaryMemo" Then GoTo TryNextB   ' Skip ADD field
       MyForm!DiaryMemo = MyForm!DiaryMemo & Chr(13) & Chr(10) & "     睰:" & ctl.Name & ": " & ctl.Value
       End Select
TryNextB:
         Next ctl
       Exit Sub
    End If
'--------------------------------------------
' Check each data entry control for change and record old value of Control.
    For Each ctl In MyForm.Controls
       Select Case ctl.ControlType
       Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox
       If ctl.Name = "DiaryMemo" Or ctl.Name = "ID" Then GoTo TryNextC  ' Skip Updates field.
             
       If ctl.Value <> ctl.OldValue Then
                MyForm!DiaryMemo = MyForm!DiaryMemo & Chr(13) & Chr(10) & "     э :" & ctl.Name & ": " & ctl.OldValue & " to: " & ctl.Value
             End If
       End Select
TryNextC:
         Next ctl
End Sub

 

Top
煮江品茶 发表于:2010-09-17 20:25:41

On Err GoTo TryNextC

。。。。

。。。。

。。。。
TryNextC:
         Next ctl
End Sub

 

程序出现错误时,跳到标签TryNextC处,然后继续执行后面的语句。

Chr(13)Chr(10) 一个是换行符,一个是回车符。好像Chr(13)是换行符。



justinliao 发表于:2010-09-17 20:57:13

 

上面的能不能写简单一些呢?

 

如下:

 

Private Sub cmdClose_Click()
On Error GoTo Err_cmdClose_Click


    DoCmd.Close

Exit_cmdClose_Click:
    Exit Sub

Err_cmdClose_Click:
    MsgBox Err.Description
    Resume Exit_cmdClose_Click
   
End Sub

 

改后:

 

Private Sub cmdClose_Click()
DoCmd.Close

End Sub



justinliao 发表于:2010-09-18 11:00:42

哪位老师能不能帮忙改一改?可以直接在附件例子修改。先谢谢了。



总记录:3篇  页次:1/1 9 1 :