У нас есть 2 базы данных, которые должны иметь соответствующие таблицы. У меня есть отчет (In-Production), который сравнивает эти поля и отображает их пользователю в форме MS-Access (стиль непрерывной формы) для исправления.
Это все хорошо, за исключением того, что может быть трудно найти различия. Как я могу отформатировать эти поля, чтобы выделить / выделить курсивом / закрасить различия?
"Ленивый пес перепрыгнул через коричневого
лис ".
«Ленивая собака перепрыгнула
коричневая лиса. "
(легче увидеть различия между 2 одинаковыми текстовыми полями, если они каким-то образом выделены)
«Ленивый пес перепрыгнул через бурого лиса».
«Ленивый пес перепрыгнул через коричневого лиса. »
Поскольку мы говорим о форме в MS Access, у меня нет больших надежд. Но я знаю, что я не первый, у кого эта проблема. Предложения?
Редактировать
Я пошел с решением Рему. Это не мое идеальное решение, но оно «достаточно хорошее», тем более что у меня нет вариантов форматированного текста. В запросе, который строит исходную таблицу, я использовал space (), чтобы добавить конечные пробелы, чтобы оба поля имели одинаковую длину. Затем я добавил этот код в событие Click обоих полей (с TextA и TextB, обращенными для другого поля):
Dim i As Integer
For i = 1 To Len(Me.TextA.Text)
If Right(Left(Me.TextA.Value, i), 1) <> _
Right(Left(Me.TextB.Value, i), 1) Then
Me.TextA.SelStart = i - 1
Me.TextA.SelLength = Len(Me.TextA.Text)
Exit For
End If
Next i
В результате при нажатии на каждое поле выбирается первая «отличающаяся буква» до конца строки. Я был в состоянии экспериментировать, кодировать и писать тексты быстро, поэтому я пошел с этим. Но я вернусь к этой идее рано или поздно, так как эта концепция будет полезна в нескольких проектах.