按钮添加文本和新行

时间:2015-06-30 16:22:59

标签: ms-access button textbox access-vba ms-access-2010

我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

以下是您的单行If ... Then语句的不同形式,我更容易讨论:

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

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

我怀疑当 Notes 的起始值为Null或空字符串时,您确实希望 Notes 成为“loren ipsum”"")。在这种情况下,请更改If条件:

If Len(Notes & "") = 0 Then