添加文本和新行的按钮

问题描述 投票:0回答:2

我正在尝试使用 VBA 在 Microsoft Access 2010 中制作一个按钮,以将预设文本添加到文本框并在文本后添加换行符。但是,每当我单击该按钮时,它似乎都会忽略我的

Then
语句并直接跳转到
Else
语句,向空文本框添加换行符,然后添加预设文本,无论状态如何注释 文本框是。

提交按钮最初是一个嵌入式宏,但我后来将其转换为 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
ms-access button textbox vba ms-access-2010
2个回答
0
投票

这是您单行

If ... Then
声明的另一种形式,这对我来说更容易讨论:

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

考虑当 Notes 为 Null 时的代码路径。 条件

Notes = ""
不会为 True。 它也不会是 False,但这并不重要。 由于它不为 True,因此控制权传递到
Else
部分。 这意味着您连接 Null 加上 CRLF(回车和换行)加上 “loren ipsum”

我怀疑只要 Notes 的起始值为 Null 或空字符串 (""),您实际上希望 Notes 变成

“loren ipsum”
。 在这种情况下,请更改
If
条件:

If Len(Notes & "") = 0 Then

0
投票

你们两人的努力相结合,让我的形式变得神奇。当“更新”添加到表单字段时,我现在可以控制混乱! 书呆子

谢谢两位!

© www.soinside.com 2019 - 2024. All rights reserved.