添加文本和新行的按钮

Button To Add Text and a new line

我正在尝试使用 VBA 在 Microsoft Access 2010 中制作一个按钮,以将预设文本添加到文本框并在文本后添加换行符。但是,每当我单击按钮时,它似乎都会忽略我的 Then 语句并直接跳到 Else 语句,在空文本框中添加换行符,然后无论如何添加预设文本Notes 文本框的状态是。

提交按钮最初是一个嵌入式宏,但我已将其转换为 VBA 代码,以使我的 Notes 文本框没有价值,希望我的Then 声明很荣幸,但没有运气。这是两个按钮的编码:

Private Sub statusBtn_Click()
Notes.SetFocus
If Notes = "" Then Notes = "lorem ipsum" Else Notes = Notes & vbCrLf & "lorem ipsum"
Me![Notes].SelStart = IIf(IsNull(Me![Notes]), 0, Len(Me![Notes]))
End Sub



Private Sub SubmitBtn_Click()
On Error GoTo SubmitBtn_Click_Err
On Error Resume Next
DoCmd.GoToRecord , "", acNewRec
If (MacroError <> 0) Then
    Beep
    MsgBox MacroError.Description, vbOKOnly, ""
End If
SubmitBtn_Click_Exit:
Exit Sub
SubmitBtn_Click_Err:
MsgBox Error$
Resume SubmitBtn_Click_Exit
Notes = ""
End Sub

这是你的单行If ... Then声明的另一种形式,我更容易讨论:

If Notes = "" Then
    Notes = "lorem ipsum"
Else
    Notes = Notes & vbCrLf & "lorem ipsum"
End If

考虑 Notes 为 Null 时的代码路径。条件 Notes = "" 不会为真。它也不会是 False,但这并不重要。由于它不是 True,因此控制传递到 Else 部分。这意味着您连接 Null 加 CRLF(回车 return 和换行)加 "loren ipsum".

我怀疑你真的想让 Notes 变成 "loren ipsum" 只要 Notes 的起始值 为 Null 或空字符串 ("")。在这种情况下,更改 If 条件:

If Len(Notes & "") = 0 Then