如何使用VBA在Access中创建带有时间和日期戳的注释框

时间:2015-03-25 17:47:03

标签: vba ms-access

VBA全新,需要详细说明帮助(我的虚拟版本)。

我有一个包含各种列和以下列的表,特别是:

ReviewerComments NewComment

我创建了一个包含这两个字段的表单,需要创建一个Append Comment按钮,从NewComment字段移动文本并将其附加到ReviewerComment字段,并在添加注释时将时间/日期标记为注释。我将此按钮命名为cmdAppendComment。

我曾见过其他人发帖,但我尝试了,但由于我对此完全陌生,所以我知道我搞砸了。非常感谢任何帮助。

这就是VBA代码现在的样子:

Private Sub cmdAppendComment_Click()
If (IsNull(NewComment.Value)) Then
    MsgBox ("Please provide a comment before clicking" & _
        "on the Append Comment button.")
    Exit Sub
  End If

  If (IsNull(ReviewerComments.Value)) Then
    ReviewerComments.Value = NewComment.Value & " ~ " & _
           VBA.DateTime.Date & " ~ " & VBA.DateTime.Time
  Else
    ReviewerComments.Value = ReviewerComments.Value & _
           vbNewLine & vbNewLine & _
           NewComment.Value & " ~ " & _
           VBA.DateTime.Date & " ~ " & VBA.DateTime.Time
  End If

  NewComment.Value = ""

End Sub

1 个答案:

答案 0 :(得分:1)

我对您的代码有一些建议:

1。请勿检查文本框是否为空,但文本框的字符数是多少。你应该总是这样做,否则你往往会得到错误。

If (len(Me.NewComment.Value & "") > 0) Then
    MsgBox ("Please provide a comment before clicking" & _
        "on the Append Comment button.")
    Exit Sub
  End If

在此处检查文本框中字符串的长度。你需要追加""因为否则你往往会得到零错误或类似的东西。

2。您忘记正确引用表单中的对象。你有自己的表单,并以这种形式放置文本框和VBA代码。您可以使用" Me。[FormObjects]"。

引用所有对象

编译器抱怨" NewComment.Value"或者" ReviewerComment.Value"未初始化或换句话说没有标注尺寸。如果正确引用,应该停止。

Private Sub cmdAppendComment_Click()
If (len(Me.NewComment.Value & "") > 0) Then
    MsgBox ("Please provide a comment before clicking" & _
        "on the Append Comment button.")
    Exit Sub
  End If

  If (IsNull(Me.ReviewerComments.Value)) Then
    Me.ReviewerComments.Value = Me.NewComment.Value & " ~ " & _
           VBA.DateTime.Date & " ~ " & VBA.DateTime.Time
  Else
    Me.ReviewerComments.Value = Me.ReviewerComments.Value & _
           vbNewLine & vbNewLine & _
           Me.NewComment.Value & " ~ " & _
           VBA.DateTime.Date & " ~ " & VBA.DateTime.Time
  End If
  Me.NewComment.Value = ""
End Sub