Как я могу управлять отдельными записями в непрерывной форме - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть подчиненная форма, представляющая собой непрерывную форму, в которой перечислены элементы текста для каждой записи в родительской форме. В этом случае родительская форма перечисляет конкретный номер заявки, а подчиненная форма предоставляет текстовые элементы этой заявки. В Интернете я нашел какой-то умный код, который использует несвязанное текстовое поле поверх текстового элемента для воспроизведения текста заявки, но с выделенным выбранным словом. Конкретное слово происходит из связанного списка слов. Но иногда слово в иске не совсем совпадает со словом в этом списке. Например, слово в списке может быть «запустить», но я также хочу выделить «работает» или «работает». Я исследовал различные способы идентификации различных вариантов, например, например, найти «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
...