У меня есть подчиненная форма, представляющая собой непрерывную форму, в которой перечислены элементы текста для каждой записи в родительской форме. В этом случае родительская форма перечисляет конкретный номер заявки, а подчиненная форма предоставляет текстовые элементы этой заявки. В Интернете я нашел какой-то умный код, который использует несвязанное текстовое поле поверх текстового элемента для воспроизведения текста заявки, но с выделенным выбранным словом. Конкретное слово происходит из связанного списка слов. Но иногда слово в иске не совсем совпадает со словом в этом списке. Например, слово в списке может быть «запустить», но я также хочу выделить «работает» или «работает». Я исследовал различные способы идентификации различных вариантов, например, например, найти «run» в тексте, а затем найти остальную часть слова с помощью InStr () и Mid () и т. Д. В целом это сработало, но только дляПервая запись. Несмотря на то, что базовый процесс работает для всех записей в непрерывной форме, я не могу понять, как программно просмотреть текст каждой отдельной записи, чтобы оценить, что мне нужно искать. Я пробовал некоторые циклы RecordSet, но, похоже, всегда просто смотрю на первую запись.
Просматривая некоторые другие посты, я чувствую, что это может быть невозможно, но буду признателен за любую проницательность. Код ниже работает. Просто пытаюсь понять, как это адаптировать, чтобы я мог работать с текстом в отдельных записях и выделять варианты слова.
Спасибо.
Public Sub Form_Current()
Dim ctl As Control
On Error GoTo Err_Handler
'Purpose: Highlight matches in txtSearchDisplay.
Dim strField As String 'The field to search
Dim strSearchValue As String 'The value to find
Dim strControlSource As String 'ControlSource for displaying match.
Const strcWildcard = "*" 'Some other back ends use %
'HTML tags for highlighting matches. Could be just "<b>" and "</b>".
Const strcTagStart = "<font color=""""red"""">"
Const strcTagEnd = "</font>"
'Search for claim term value in claim element text.
strField = "ClaimElementText" 'Field containing claim text
strSearchValue = Forms![frmWords].ClaimTerm 'This is the word to highlight
'Control Source for the text box to display matches.
strControlSource = "=IIf(" & strField & " Is Null, Null, " & _
"Replace(" & strField & ", """ & strSearchValue & """, """ & _
strcTagStart & strSearchValue & strcTagEnd & """))"
With Forms![frmWords]![sbfmClaims].Form![sbfrmClaimText].Form!txtSearchDisplay
.ControlSource = strControlSource
.Visible = True
.BackColor = RGB(255, 255, 255)
End With
'This is necessary to get the term highlighting to show up on first limitation.
Forms![frmWords]![sbfmClaims].Form![sbfrmClaimText].Form!txtSearchDisplay.SetFocus
Exit_Handler:
Exit Sub
Err_Handler:
Resume Exit_Handler
End Sub