【问题标题】:Button To Add Text and a new line添加文本和新行的按钮
【发布时间】:2015-06-30 16:22:59
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    考虑 Notes 为 Null 时的代码路径。条件Notes = "" 不会为真。它也不会是 False,但这没关系。因为它不是 True,所以控制传递给 Else 部分。这意味着你连接 Null 加上 CRLF(回车和换行)加上 “loren ipsum”

    我怀疑您实际上希望 Notes 只是 "loren ipsum" 只要 Notes 的起始值为 Null 或空字符串("")。在这种情况下,更改If 条件:

    If Len(Notes & "") = 0 Then
    

    【讨论】:

    • 非常感谢汉斯,您解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多