【问题标题】:My Table is not updating with the second entries in Long Text field我的表没有更新长文本字段中的第二个条目
【发布时间】:2018-05-28 07:04:59
【问题描述】:

我在 Access 2016 中运行以下代码以保留评论历史记录。

其中 AddNewComment 是一个未绑定的文本框,而 Comments 是一个未“启用”的文本框字段。因此,一旦用户在 AddNewComment 中输入文本并单击 Save Comment 按钮,它就会使用 Date & TimeStamp 更新 Comments 框。

问题是即使我有多个评论,我也只能在表格中看到第一个评论;无法查看表中的其他 cmets。

字段名称为“评论”,数据类型为“长文本”。

**Code** 

Private Sub Save_Comment_Click()

If (IsNull(AddNewComment.Value)) Then
    MsgBox ("Please Enter a Comment before clicking" & _
            "on the Save Comment buttonn.")
    Exit Sub
End If

If (IsNull(Comments.Value)) Then
    Comments.Value = AddNewComment.Value & " ~ " & _
        VBA.DateTime.Date & " ~ " & VBA.DateTime.Time

Else
    Comments.Value = Comments.Value & _
        vbNewLine & vbNewLine & _
        AddNewComment.Value & " ~ " & _
        VBA.DateTime.Date & " ~ " & VBA.DateTime.Time

End If

    AddNewComment.Value = ""

End Sub

【问题讨论】:

  • 我更喜欢vbCrLf。您确定修改后的字符串不在表格中吗?你让行高变高了吗?推荐一张相关表,每条评论都是一条新记录。
  • 非常感谢.. 这是行高。我从没想过会是这样,但就是这样。非常感谢您的帮助和及时回复。我已将代码更改为 vbCrLf..
  • 刚刚用 vbNewLine 做了一个测试。好像真的没什么区别。因为我首先了解了 vbCrLf,所以永远不要使用 vbNewLine。于是好奇发现jaypm.com/2012/08/…
  • 是的,我想说 - cbCrLf 是相同的。我喜欢 vbNewLine 听起来像它的样子。我们大多数人对打字机的使用还不够熟悉“回车”和“换行”的概念,恕我直言。
  • 您实际上可以在我的访问版本中在表格中的行之间移动,方法是在字段内部单击(好像您将要对其进行编辑),然后点击向下箭头。每条评论都是它自己的一行。

标签: ms-access vba


【解决方案1】:

为避免与字段底部消失的 cmets 混淆(如 cmets 中所述),您可以将最近的 cmets 保留在顶部。这样一来,您始终可以看到最新的内容,即使表单上的字段大小对于所有内容来说都太小了。

您还可以使用Nz 函数缩短整个代码,将未更新的Comments 中的空值替换为空字符串("")。

Private Sub Save_Comment_Click()

If IsNull(AddNewComment.Value) Then
    MsgBox ("Please Enter a Comment before clicking " & _
            "on the Save Comment button.")
Else
    Comments.Value = AddNewComment.Value & " ~ " & _
        VBA.DateTime.Date & " ~ " & VBA.DateTime.Time & _
        vbNewLine & vbNewLine & Nz(Comments.Value, "")
    AddNewComment.Value = Null
End If

End Sub

【讨论】:

  • 我还更改了最后一行,以便如果您添加评论,然后再次单击保存,它不会将空字符串添加为新评论...
  • 非常感谢。我喜欢它的工作方式。我现在正在使用上面的代码。
  • 太棒了!很高兴我能帮上忙。如果这个答案解决了问题,您是否可以“接受”(单击勾号)以便将问题标记为已关闭?
  • 哦,刚刚意识到,重新阅读“Exit Sub”是不必要的,因为整个子只包含一个If和一个Else。一个必须申请,所以如果它是第一个条件,它将跳过 else 并直接到最后。我会从答案中删除它。
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多