This interesting workaround comes from Alan Keele. It does cause a little bit of UI flicker, but works on the front-end and back-end:
Function IsRTFNull(rtfield As String) As Integer 'This function tests a Rich Text field to see whether or not it is null. It returns TRUE if the field is null, and 'returns FALSE if the field is not null. It works even if the rich text field contains a file attachment, 'doclink, or OLE object but does not contain any text. On Error Goto Errhandle Dim workspace As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set uidoc = workspace.CurrentDocument 'Store the name of the field that currently has focus. Note: if this function is being called from a form button, 'currentfield will be null (because the button has the focus, and not a field). If this function is called 'from an action button, and if the cursor is in a field, then currentfield will correctly store the name 'of the field that has focus. currentfield = uidoc.CurrentField Call uidoc.GotoField(rtfield) Call uidoc.SelectAll 'The next line will generate a 4407 error message if the Rich Text Field is null Call uidoc.DeselectAll 'Return the cursor the the field that had focus before this function ran. If the currentfield variable is null (because a button 'or hotspot had focus, then the cursor will actually wind up getting left in the rich text field. If currentfield <> "" Then Call uidoc.GotoField(currentfield) End If IsRTFNull = False Exit Function Errhandle: Select Case Err Case 4407 'the DeselectAll line generated an error message, indicating that the rich text field does not contain anything If currentfield <> "" Then Call uidoc.GotoField(currentfield) End If IsRTFNull = True Exit Function Case Else 'For any other error, force the same error to cause LotusScript to do the error handling Error Err End Select End Function
From Eric Wilson:
In LotusScript, you can also check by looking for: NotesItem.Text = "" and ValueLength < 200.